aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorItay Grudev <itay@grudev.com>2015-06-06 00:26:41 +0300
committerItay Grudev <itay@grudev.com>2015-06-06 00:32:50 +0300
commit2dd9a4e553226897940948e946c64504b7f14fca (patch)
tree7e2ec99e04e94db2c6a21fc9c83cddb886b4d222 /README.md
parentAdded known bug remark (diff)
downloadsingleapplication-2dd9a4e553226897940948e946c64504b7f14fca.tar.xz
Fixed race condition #3! Library version 2.1; Explained implementation in README
Diffstat (limited to 'README.md')
-rw-r--r--README.md19
1 files changed, 13 insertions, 6 deletions
diff --git a/README.md b/README.md
index 392813f..31e1b86 100644
--- a/README.md
+++ b/README.md
@@ -32,12 +32,19 @@ The ```Show Up``` signal
------------------------
The SingleApplication class implements a ```showUp()``` signal. You can bind to that signal to raise your application's window when a new instance had been started.
-Known bugs
-----------
-The ```SingleApplication``` class works really well for the scenario
-when a
-user starts your application twice, but the implementation it uses does not garantee it will work if two processes are started simultaniously (with a millisecond delay, which is only done programatically), in which case two instances might coexist on some platforms.
-_The issue is a work in proggress and should be fixed soon._
+Implementation
+--------------
+The library is implemented with a QSharedMemory block which is thread safe and guarantees a race condition will not occur. It also uses a QLocalSocket to notify the main process that a new instance had been spawned and thus invoke the ```showUp()``` signal.
+
+To handle an issue with Unix systems, where the operating system owns the shared memory block and if the program crashes the memory remains untouched, the library binds to the following signals and closes the program with error code = ```128 + signum``` where signum is the number representation of the signal listed below.
+
+* ```SIGINT ``` - ```2```
+* ```SIGILL ``` - ```4```
+* ```SIGABRT``` - ```6```
+* ```SIGFPE ``` - ```8```
+* ```SIGSEGV``` - ```11```
+* ```SIGTERM``` - ```15```
+
License
-------