Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						6bdfd1d1b1 
					 
					
						
						
							
							A more idiomatic way of trying a non-blocking send on a buffered channel  
						
						 
						
						... 
						
						
						
						and falling back to a blocking send inside a goroutine.
This really needs to be fixed. The situation only arises when events are
sent and aren't pulled off the channel using {Wait,Poll}ForEvent.
Namely, if the event send blocks, the entire program will deadlock.
Using a goroutine is not ideal because we lose a guarantee of order:
that events are processed in the order of their arrival. However, it
seems OK as a temporary band-aide for a situation that probably doesn't
arise too often.
What I need to do is implement a dynamic queue. Here is a reference
implementation: http://play.golang.org/p/AiHBsxTFpj  
						
						
					 
					
						2012-05-12 21:55:57 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						7abc9c6455 
					 
					
						
						
							
							added some docs and removed some extraneous code  
						
						 
						
						
						
						
					 
					
						2012-05-12 21:44:53 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						24fef4062a 
					 
					
						
						
							
							docs  
						
						 
						
						
						
						
					 
					
						2012-05-12 21:36:31 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						f77feff864 
					 
					
						
						
							
							some docs in the Makefile and removing a prefix that isn't needed.  
						
						 
						
						
						
						
					 
					
						2012-05-12 21:27:47 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						aa95801b2d 
					 
					
						
						
							
							panic when an extension request is issued before an extension has been initialized. but give a nice error message for the happy people.  
						
						 
						
						
						
						
					 
					
						2012-05-11 23:59:38 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						29942bf078 
					 
					
						
						
							
							panic when an extension request is issued before an extension has been initialized. but give a nice error message for the happy people.  
						
						 
						
						
						
						
					 
					
						2012-05-11 23:58:52 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						fb3128ed2a 
					 
					
						
						
							
							doc updates and a quick usage  
						
						 
						
						
						
						
					 
					
						2012-05-11 02:01:29 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						3e6b354493 
					 
					
						
						
							
							add a little more docs for errors  
						
						 
						
						
						
						
					 
					
						2012-05-11 01:58:52 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						c00652934e 
					 
					
						
						
							
							better docs  
						
						 
						
						
						
						
					 
					
						2012-05-10 23:57:34 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						a3363755cd 
					 
					
						
						
							
							adding package header comments  
						
						 
						
						
						
						
					 
					
						2012-05-10 20:06:22 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						0c50dc6241 
					 
					
						
						
							
							a huge commit. splitting extensions into their own sub-packages.  
						
						 
						
						
						
						
					 
					
						2012-05-10 17:01:42 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						e239bb3c68 
					 
					
						
						
							
							make resource ids their own individual types. last commit before overhaul to sub-packages  
						
						 
						
						
						
						
					 
					
						2012-05-10 12:47:19 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						00c6217ca9 
					 
					
						
						
							
							update  
						
						 
						
						
						
						
					 
					
						2012-05-08 23:03:55 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						5d64f69030 
					 
					
						
						
							
							fixed nasty bug that made XGB not thread safe  
						
						 
						
						
						
						
					 
					
						2012-05-08 23:03:45 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						62b293c937 
					 
					
						
						
							
							use a custom logger so we don't stomp all over the global log configuration  
						
						 
						
						
						
						
					 
					
						2012-05-08 00:27:00 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						e256da00b1 
					 
					
						
						
							
							gofmt  
						
						 
						
						
						
						
					 
					
						2012-05-07 21:58:43 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						13d598e5e7 
					 
					
						
						
							
							more clean up. use log instead of fmt.Print to stderr. bug fix for event blocking (a hack fix for now).  
						
						 
						
						
						
						
					 
					
						2012-05-07 21:58:33 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						daad54a5e1 
					 
					
						
						
							
							important stuff first please  
						
						 
						
						
						
						
					 
					
						2012-05-07 04:17:11 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						eed777ebfd 
					 
					
						
						
							
							more info in readme. link to docs.  
						
						 
						
						
						
						
					 
					
						2012-05-07 04:13:41 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						dc48249e1a 
					 
					
						
						
							
							lots of docs and examples  
						
						 
						
						
						
						
					 
					
						2012-05-07 04:09:19 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						3bf376bd66 
					 
					
						
						
							
							80 cols  
						
						 
						
						
						
						
					 
					
						2012-05-07 01:11:41 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						fd30f1512a 
					 
					
						
						
							
							added tests  
						
						 
						
						
						
						
					 
					
						2012-05-07 01:00:45 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						6d545e723a 
					 
					
						
						
							
							add more extension cruft. make extension checking more uniform.  
						
						 
						
						
						
						
					 
					
						2012-05-06 17:48:40 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						135cee5761 
					 
					
						
						
							
							auto-generated Go code ftw. ~65,000 lines. woooheee  
						
						 
						
						
						
						
					 
					
						2012-05-06 03:06:48 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						70ebcf5178 
					 
					
						
						
							
							build comman for converting XML to Go  
						
						 
						
						
						
						
					 
					
						2012-05-06 03:06:27 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						ea30f1a0a7 
					 
					
						
						
							
							more bug fixes for the rest of the extensions  
						
						 
						
						
						
						
					 
					
						2012-05-06 03:06:02 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						014a0598bf 
					 
					
						
						
							
							status update  
						
						 
						
						
						
						
					 
					
						2012-05-06 02:28:32 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						18b2d420b0 
					 
					
						
						
							
							added documentation and did some slight restructuring. it's party time.  
						
						 
						
						
						
						
					 
					
						2012-05-06 02:21:31 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						99bc76de54 
					 
					
						
						
							
							examples. some should be tests  
						
						 
						
						
						
						
					 
					
						2012-05-05 18:22:40 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						369ad0d33e 
					 
					
						
						
							
							extensions are working! extensions are working!  
						
						 
						
						
						
						
					 
					
						2012-05-05 18:22:24 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						b6715f376f 
					 
					
						
						
							
							fixing bugs related mostly to extension handling  
						
						 
						
						
						
						
					 
					
						2012-05-05 18:21:48 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						4a7b05be36 
					 
					
						
						
							
							oh momma. a lot of modifications and it appears to be working. w00t.  
						
						 
						
						
						
						
					 
					
						2012-05-05 02:56:15 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						c222d406b0 
					 
					
						
						
							
							converting to new reply/cookie scheme  
						
						 
						
						
						
						
					 
					
						2012-05-05 02:55:38 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						a5d4ad6c9d 
					 
					
						
						
							
							reworking xgb. cleaned up connection stuff a little. making new xid generation cleaner and use goroutines for it.  
						
						 
						
						
						
						
					 
					
						2012-05-03 22:47:50 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						5cdae5950c 
					 
					
						
						
							
							holy toldeo... things might actually be working  
						
						 
						
						
						
						
					 
					
						2012-05-03 01:00:01 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						39507f86ab 
					 
					
						
						
							
							finally starting on the crescendo: requests and replies.  
						
						 
						
						
						
						
					 
					
						2012-05-02 01:46:30 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						f48b6fafc6 
					 
					
						
						
							
							float my boat  
						
						 
						
						
						
						
					 
					
						2012-05-01 01:09:45 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						83a71d4648 
					 
					
						
						
							
							unions, events and errors... oh my  
						
						 
						
						
						
						
					 
					
						2012-05-01 01:08:03 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						73154769b3 
					 
					
						
						
							
							splitting up go specific code. too much for one file IMO. more progress. almost done with structs.  
						
						 
						
						
						
						
					 
					
						2012-04-30 16:18:17 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						2a2d8653b3 
					 
					
						
						
							
							gofmt  
						
						 
						
						
						
						
					 
					
						2012-04-30 02:44:31 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						05d8ec6a16 
					 
					
						
						
							
							complete and total overhaul like i promised. things are much easier to reason about. still not working yet though.  
						
						 
						
						
						
						
					 
					
						2012-04-30 02:40:55 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						3115c13e88 
					 
					
						
						
							
							last commit before i tear everything down  
						
						 
						
						
						
						
					 
					
						2012-04-29 14:09:03 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						6bf0191fb0 
					 
					
						
						
							
							progress. still not working. this is incredibly difficult.  
						
						 
						
						
						
						
					 
					
						2012-04-29 03:38:29 -04:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andrew Gallant (Ocelot) 
							
						 
					 
					
						
						
							
						
						52a21b415a 
					 
					
						
						
							
							initial commit. not currently in a working state.  
						
						 
						
						
						
						
					 
					
						2012-04-28 23:25:57 -04:00