Commit Graph

94 Commits

Author SHA1 Message Date
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