coderstephen
f648c5febb
Make sure object ID is unique
2015-08-05 02:52:45 -05:00
coderstephen
5fb2b0ee64
Update provisioning to provide xdebug for code coverage & auto-load extensions
2015-08-05 02:51:04 -05:00
coderstephen
ff413c904c
First working, async threads using channels for messages
...
Channel was changed to return resources on creation.
Also, much better setting up synchronization at the beginning of a new
thread.
2015-08-05 02:48:43 -05:00
coderstephen
ced3ddc8ff
New class for storing non-thread-safe objects in thread-local memory
2015-08-05 02:21:49 -05:00
coderstephen
a372328534
LocalStorage class for storing unsafe data inside a thread
2015-08-03 16:07:58 -05:00
coderstephen
e2577a6ab1
Update docs
2015-08-03 15:11:58 -05:00
coderstephen
5cd8353fcc
Store panic info inside an error
2015-08-03 15:11:27 -05:00
coderstephen
b9cef10633
Add panic method for panicking a context from either side
2015-08-03 15:10:59 -05:00
coderstephen
8ac9301105
Update fork example
2015-08-03 15:10:20 -05:00
coderstephen
e388e08f4f
Update thread example to use coroutines
2015-08-03 15:09:26 -05:00
coderstephen
c110d4baa6
Use Channel for fork messages
2015-08-03 15:08:27 -05:00
coderstephen
7919a0df38
Add better socket checking and error handling
...
Also update send() to return a generator.
2015-08-03 01:22:17 -05:00
coderstephen
f121adb577
Get rid of coroutine wrapper
2015-08-03 00:58:08 -05:00
coderstephen
bf6c46b2d0
Add test suite for just threading tests
2015-08-03 00:31:01 -05:00
coderstephen
db5469a9cf
Exception for channels
2015-08-03 00:29:41 -05:00
coderstephen
25804d70c3
Add benchmark for socket pairs
2015-08-03 00:28:38 -05:00
coderstephen
fe54634462
Basic channel test
2015-08-03 00:20:06 -05:00
coderstephen
72db6e53aa
Fix dumb mistakes and add close() method
2015-08-03 00:19:51 -05:00
coderstephen
ee6b8e1ec1
Ported message passing to channel class
2015-08-02 23:45:31 -05:00
coderstephen
cb1c20ae95
Add Vagrant box definition
2015-08-02 20:48:29 -05:00
coderstephen
5ae8a3b0f7
Add vagrant to gitignore
2015-08-02 19:45:44 -05:00
coderstephen
ae23b0adba
Fix method names
2015-08-02 17:56:25 -05:00
coderstephen
ff2f0682d6
Add semaphore from sync extension
2015-08-01 21:56:18 -05:00
coderstephen
19080f651b
Add interface for synchronous semaphores
2015-08-01 21:51:45 -05:00
coderstephen
9b63e7fe7d
A mutex based on the sync extension
2015-08-01 21:18:14 -05:00
coderstephen
cf788a9377
Add portable mutex using flock()
2015-08-01 21:07:33 -05:00
coderstephen
eded7b86a4
Use a common interface for mutexes
2015-08-01 20:15:03 -05:00
coderstephen
a0d0b3646e
Add a thread-safe mutex
2015-08-01 20:02:57 -05:00
coderstephen
92432ff58b
Experimental closure-based contexts
2015-07-26 17:53:00 -05:00
coderstephen
966b73a74c
Add benchmark for Forking\SharedObject
2015-07-16 03:19:57 -05:00
coderstephen
e01404989b
Add benchmarks for profiling implementations and backends
2015-07-16 03:02:58 -05:00
coderstephen
9337d3a8ea
Fix bug where shared data would sometimes disappear
2015-07-15 18:36:42 -05:00
coderstephen
1f76fcadb2
Synchronization methods now part of SynchronizableInterface
2015-07-15 18:12:18 -05:00
coderstephen
1ed1a45a3d
Fix pending locks not handled bug
2015-07-15 18:11:05 -05:00
coderstephen
698fb58058
Fix missing synchronized read access
2015-07-15 18:10:27 -05:00
coderstephen
72f767b707
Fix docblock goof
2015-07-15 17:31:04 -05:00
coderstephen
6442bb9191
Don't recursively create thread instances
2015-07-15 12:36:32 -05:00
coderstephen
e6be25c2ca
Add some splurge to the README
2015-07-15 11:29:35 -05:00
coderstephen
46d18480a4
Add some comments and docblocks
2015-07-15 11:24:04 -05:00
coderstephen
2eff29d036
Allow any callable inside synchronized() calls
2015-07-14 23:47:21 -05:00
coderstephen
3c4448866f
Run given ThreadContext::run() inside thread
2015-07-14 17:15:10 -05:00
coderstephen
18b7c68f65
Experimental pthread context
2015-07-13 17:30:59 -05:00
coderstephen
f1b681537f
Async synchronized object
2015-07-13 17:30:14 -05:00
coderstephen
f3a6f03d4c
Update example to use async locking
2015-07-13 12:30:00 -05:00
coderstephen
f9d57e7d8f
ContextInterface now returns promises for locking
2015-07-13 12:28:14 -05:00
coderstephen
a288e99287
Split Synchronized into SharedObject and integrate async locking
...
Synchronized has now been split into SharedObject, and a subclass Synchronized. AsyncSemaphore now extends SharedObject and uses a sync semaphore manually as gatekeeper, and Synchronized now uses an async semaphore for locking.
2015-07-13 12:26:37 -05:00
coderstephen
6f185ad17d
Handle signals inside AsyncSemaphore
2015-07-12 15:57:04 -05:00
coderstephen
24a1e2fc8f
Move special values to constants
2015-07-11 12:07:31 -05:00
coderstephen
277e5ded02
Synchronize using shmop and docblock annotations
2015-07-11 05:01:36 -05:00
coderstephen
fefa5e706a
Prototypal asynchronous semaphore
2015-07-10 23:13:24 -05:00