1b1fdbe287 
								
							 
						 
						
							
							
								
								Merge pull request  #8  from ms-ati/fix-cond-var-signal-when-no-waiters  
							
							... 
							
							
							
							Fix ConditionVariable#signal to only post if semaphore has waiters 
							
						 
						
							2013-12-27 14:49:04 -08:00  
				
					
						
							
							
								 
						
							
								4518e6fdad 
								
							 
						 
						
							
							
								
								Fix ConditionVariable#signal to only post if semaphore has waiters  
							
							... 
							
							
							
							This fixes a bug where calls to #signal would end up "over-posting"
the semaphore, causing subsequent waits to return immediately until
the semaphore value is back down to zero. 
							
						 
						
							2013-12-27 15:15:07 -05:00  
				
					
						
							
							
								 
						
							
								41b6777638 
								
							 
						 
						
							
							
								
								Fix SharedMemoryIO#read for binary data on Ruby 1.9+  
							
							
							
						 
						
							2013-12-27 13:38:23 -05:00  
				
					
						
							
							
								 
						
							
								aeadb74ef6 
								
							 
						 
						
							
							
								
								Fix Mutex to allow lock from different Ruby (green) thread in process  
							
							
							
						 
						
							2013-12-27 10:46:50 -05:00  
				
					
						
							
							
								 
						
							
								d2f8af03eb 
								
							 
						 
						
							
							
								
								Workaround apparent bug in 1.8.7/REE: block all during sem_timedwait  
							
							
							
						 
						
							2013-12-26 13:48:29 -05:00  
				
					
						
							
							
								 
						
							
								e2e70591a1 
								
							 
						 
						
							
							
								
								On posix, allow ruby threads to continue during wait / try_wait  
							
							
							
						 
						
							2013-12-26 12:47:09 -05:00  
				
					
						
							
							
								 
						
							
								50c096d84c 
								
							 
						 
						
							
							
								
								On mach, allow other ruby threads to continue during semaphore try_wait  
							
							
							
						 
						
							2013-12-26 12:45:04 -05:00  
				
					
						
							
							
								 
						
							
								d1644104c8 
								
							 
						 
						
							
							
								
								On mach, allow other ruby green threads to continue during semaphore wait  
							
							
							
						 
						
							2013-12-26 12:27:36 -05:00  
				
					
						
							
							
								 
						
							
								5aba20cdf7 
								
							 
						 
						
							
							
								
								Partial MonitorMixin implementation.  
							
							
							
						 
						
							2012-03-29 23:00:52 -05:00  
				
					
						
							
							
								 
						
							
								80284301a7 
								
							 
						 
						
							
							
								
								Use semaphore#synchronize convenience method internally.  
							
							
							
						 
						
							2012-03-29 22:34:16 -05:00  
				
					
						
							
							
								 
						
							
								1eff930480 
								
							 
						 
						
							
							
								
								Initial attempt at Monitor class.  
							
							
							
						 
						
							2012-03-29 22:33:03 -05:00  
				
					
						
							
							
								 
						
							
								da42ac4875 
								
							 
						 
						
							
							
								
								Refactor Mach FFI wrapper; get unit tests working again.  
							
							
							
						 
						
							2012-02-08 21:30:18 -06:00  
				
					
						
							
							
								 
						
							
								15fe2e5057 
								
							 
						 
						
							
							
								
								Refactor class hierarchy, implementation selection details.  
							
							
							
						 
						
							2012-02-07 23:06:17 -06:00  
				
					
						
							
							
								 
						
							
								60b1cd8e53 
								
							 
						 
						
							
							
								
								Add (again) default semaphore value; all tests passing on Linux.  
							
							
							
						 
						
							2012-02-01 21:43:53 -06:00  
				
					
						
							
							
								 
						
							
								842ff179ec 
								
							 
						 
						
							
							
								
								Remove no-longer-used libpsem and related code and tests.  
							
							
							
						 
						
							2012-02-01 21:42:34 -06:00  
				
					
						
							
							
								 
						
							
								8158666e90 
								
							 
						 
						
							
							
								
								Add posix-y compatibility extension class over Mach::Semaphore.  
							
							
							
						 
						
							2012-02-01 21:36:15 -06:00  
				
					
						
							
							
								 
						
							
								680527cbab 
								
							 
						 
						
							
							
								
								Add time and clock Mach functions; implement Mach::Semaphore#timedwait.  
							
							
							
						 
						
							2012-02-01 21:34:51 -06:00  
				
					
						
							
							
								 
						
							
								b76bf99947 
								
							 
						 
						
							
							
								
								Add additional mach error codes.  
							
							
							
						 
						
							2012-02-01 21:32:08 -06:00  
				
					
						
							
							
								 
						
							
								ffe1298731 
								
							 
						 
						
							
							
								
								Factor common TimeSpec methods into module.  
							
							
							
						 
						
							2012-02-01 20:33:31 -06:00  
				
					
						
							
							
								 
						
							
								71aa552213 
								
							 
						 
						
							
							
								
								Move with_self open-with-block helper to common module from posix semaphore implementation.  
							
							
							
						 
						
							2012-02-01 19:44:24 -06:00  
				
					
						
							
							
								 
						
							
								6f63c67c6e 
								
							 
						 
						
							
							
								
								Split SharedMemory into module and platform dependent bits.  Make SharedArray extend platform dependent class.  
							
							
							
						 
						
							2012-02-01 19:38:53 -06:00  
				
					
						
							
							
								 
						
							
								db108a1913 
								
							 
						 
						
							
							
								
								Delete BoundedSemaphore.  
							
							
							
						 
						
							2012-02-01 19:24:07 -06:00  
				
					
						
							
							
								 
						
							
								bb2bb3c5d9 
								
							 
						 
						
							
							
								
								Make BinarySemaphore delegate to platform-dependent semaphore.  
							
							
							
						 
						
							2012-02-01 19:23:45 -06:00  
				
					
						
							
							
								 
						
							
								13922373d6 
								
							 
						 
						
							
							
								
								Create dedicated class for messages.  
							
							
							
						 
						
							2012-01-29 22:57:13 -06:00  
				
					
						
							
							
								 
						
							
								ae67dc6889 
								
							 
						 
						
							
							
								
								Add Ruby/FFI wrapper around POSIX shared memory and semaphore (obviating libpsem).  
							
							
							
						 
						
							2012-01-29 22:54:22 -06:00  
				
					
						
							
							
								 
						
							
								16ceacb31e 
								
							 
						 
						
							
							
								
								Document Port#insert_right method.  
							
							
							
						 
						
							2012-01-21 18:39:27 -06:00  
				
					
						
							
							
								 
						
							
								807e694ad3 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							
							
						 
						
							2012-01-21 15:11:16 -06:00  
				
					
						
							
							
								 
						
							
								933690a426 
								
							 
						 
						
							
							
								
								Remove logging statement from #send_right.  
							
							
							
						 
						
							2012-01-21 15:10:38 -06:00  
				
					
						
							
							
								 
						
							
								0ac03cfefc 
								
							 
						 
						
							
							
								
								Add methods on port to send and receive rights from other tasks.  
							
							
							
						 
						
							2012-01-21 15:06:46 -06:00  
				
					
						
							
							
								 
						
							
								9f17aac114 
								
							 
						 
						
							
							
								
								Modify args to Semaphore and Port constructors to accept existing ports.  
							
							
							
						 
						
							2012-01-16 08:14:58 -06:00  
				
					
						
							
							
								 
						
							
								14e5b893bf 
								
							 
						 
						
							
							
								
								Make (require 'mach') load all subcomponents.  
							
							
							
						 
						
							2012-01-15 08:08:17 -06:00  
				
					
						
							
							
								 
						
							
								d337ddd0e3 
								
							 
						 
						
							
							
								
								Remove obsolete file added by mistake.  
							
							
							
						 
						
							2012-01-15 08:05:34 -06:00  
				
					
						
							
							
								 
						
							
								252d606c09 
								
							 
						 
						
							
							
								
								Add FFI wrapper around some of the Mach API (in Mac OS X).  
							
							
							
						 
						
							2012-01-15 08:02:53 -06:00  
				
					
						
							
							
								 
						
							
								893c457b35 
								
							 
						 
						
							
							
								
								Make ffi type to getter/setter method search more robust to work in 1.8 and 1.9.  
							
							
							
						 
						
							2011-12-21 08:14:20 -06:00  
				
					
						
							
							
								 
						
							
								a21071b590 
								
							 
						 
						
							
							
								
								Fix object writing and reading for Ruby 1.8 IO differences.  
							
							
							
						 
						
							2011-12-21 07:58:55 -06:00  
				
					
						
							
							
								 
						
							
								edc927709a 
								
							 
						 
						
							
							
								
								Avoid possible race in ConditionVariable where new processes begin waiting while #broadcast is running.  
							
							
							
						 
						
							2011-12-20 22:12:25 -06:00  
				
					
						
							
							
								 
						
							
								cc663a8d7f 
								
							 
						 
						
							
							
								
								Add SharedMemory#write_object and #read_object; add SharedMemoryIO helper.  
							
							
							
						 
						
							2011-12-20 22:09:38 -06:00  
				
					
						
							
							
								 
						
							
								611c41f939 
								
							 
						 
						
							
							
								
								Add SharedArray extension of SharedMemory (with Enumerable mixin).  
							
							
							
						 
						
							2011-12-17 21:51:22 -06:00  
				
					
						
							
							
								 
						
							
								ea063678cc 
								
							 
						 
						
							
							
								
								Update SharedMemory initializer to accept type and size.  
							
							
							
						 
						
							2011-12-17 21:50:39 -06:00  
				
					
						
							
							
								 
						
							
								d65979cc2e 
								
							 
						 
						
							
							
								
								Initial attempt at ConditionVariable implementation.  
							
							
							
						 
						
							2011-12-17 11:05:39 -06:00  
				
					
						
							
							
								 
						
							
								a1f881f59c 
								
							 
						 
						
							
							
								
								Add finalizer to SharedMemory.  
							
							
							
						 
						
							2011-12-17 10:31:22 -06:00  
				
					
						
							
							
								 
						
							
								7bdae6482f 
								
							 
						 
						
							
							
								
								Add finalizer to SharedMemory.  
							
							
							
						 
						
							2011-12-17 10:31:09 -06:00  
				
					
						
							
							
								 
						
							
								7d71937bf7 
								
							 
						 
						
							
							
								
								Add BinarySemaphore (error checking semaphore with max value 1).  
							
							
							
						 
						
							2011-12-17 10:15:22 -06:00  
				
					
						
							
							
								 
						
							
								0f00a7d444 
								
							 
						 
						
							
							
								
								Add minor explanatory comment.  
							
							
							
						 
						
							2011-12-17 10:07:24 -06:00  
				
					
						
							
							
								 
						
							
								7230e9f2c9 
								
							 
						 
						
							
							
								
								Add Semaphore#try_wait.  Fix libpsem to convert relative timeout to absolute timeout.  
							
							
							
						 
						
							2011-12-17 09:58:10 -06:00  
				
					
						
							
							
								 
						
							
								f65ae434e4 
								
							 
						 
						
							
							
								
								Clear the error pointer so that it may be reused.  
							
							
							
						 
						
							2011-12-17 07:53:15 -06:00  
				
					
						
							
							
								 
						
							
								514df0f49f 
								
							 
						 
						
							
							
								
								Change from BoundedSemaphore to Semaphore in Mutex implementation so it will work on Mac OS X (and other platforms with out sem_getvalue().  
							
							
							
						 
						
							2011-12-13 22:03:36 -06:00  
				
					
						
							
							
								 
						
							
								d102786090 
								
							 
						 
						
							
							
								
								Expand documentation; fix markup.  
							
							
							
						 
						
							2011-12-12 22:02:00 -06:00  
				
					
						
							
							
								 
						
							
								faa8a6c5b3 
								
							 
						 
						
							
							
								
								Test RUBY_VERSION rather than VERSION (which no longer exists in 1.9).  
							
							
							
						 
						
							2011-12-12 21:38:47 -06:00  
				
					
						
							
							
								 
						
							
								4f775ac5ca 
								
							 
						 
						
							
							
								
								Add backwards compatibility define_singleton_method for Ruby 1.8.  
							
							
							
						 
						
							2011-12-12 20:51:06 -06:00