Add object transfer example to README.
This commit is contained in:
parent
edc927709a
commit
6b6be3c2e5
19
README.rdoc
19
README.rdoc
|
@ -59,6 +59,23 @@ Install the gem with:
|
||||||
|
|
||||||
puts "value should be zero: #{mem.get_int(0)}"
|
puts "value should be zero: #{mem.get_int(0)}"
|
||||||
|
|
||||||
|
== Transfer Objects Across Processes
|
||||||
|
|
||||||
|
# allocate a sufficient memory block
|
||||||
|
mem = ProcessShared::SharedMemory.new(1024)
|
||||||
|
|
||||||
|
# sub process can write (serialize) object to memory (with bounds checking)
|
||||||
|
pid = fork do
|
||||||
|
mem.write_object(['a', 'b'])
|
||||||
|
end
|
||||||
|
|
||||||
|
Process.wait(pid)
|
||||||
|
|
||||||
|
# parent process can read the object back (synchronizing access
|
||||||
|
# with a Mutex left as an excercie to reader)
|
||||||
|
|
||||||
|
mem.read_object.must_equal ['a', 'b']
|
||||||
|
|
||||||
== Todo
|
== Todo
|
||||||
|
|
||||||
* Test ConditionVariable
|
* Test ConditionVariable
|
||||||
|
@ -69,7 +86,7 @@ Install the gem with:
|
||||||
* Add finalizer to Mutex? (finalizer on Semaphore objects may be enough) or a method to
|
* Add finalizer to Mutex? (finalizer on Semaphore objects may be enough) or a method to
|
||||||
explicitly close and release resources?
|
explicitly close and release resources?
|
||||||
* Test semantics of crashing processes who still hold locks, etc.
|
* Test semantics of crashing processes who still hold locks, etc.
|
||||||
* Improve interface to SharedMemory to be more Array-like and generally usable
|
* Is SharedArray with Enumerable mixing sufficient Array-like interface?
|
||||||
* Remove bsem from libpsem as it is of little use and doesn't work on Mac OS X
|
* Remove bsem from libpsem as it is of little use and doesn't work on Mac OS X
|
||||||
* Possibly implement BoundedSemaphore with arbitrary bound (in Ruby
|
* Possibly implement BoundedSemaphore with arbitrary bound (in Ruby
|
||||||
rather than relying on sem_getvalue()), but this is of little
|
rather than relying on sem_getvalue()), but this is of little
|
||||||
|
|
Loading…
Reference in New Issue