{"push_id":1327264659,"size":10,"distinct_size":10,"ref":"refs/heads/master","head":"d1d7a2a7e869a0a21c2f2f64210f477de41e1790","before":"7dc185bc6cec028ae9ddfbdb36aa5a9107e0d7ca","commits":[{"sha":"e9d3ad835b64b604f157f263938750184b4917ce","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"listen -> posix-utils:  Move listen_unix() routine","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/e9d3ad835b64b604f157f263938750184b4917ce"},{"sha":"416d7ccff67393621aafca17a3f9ff6690946099","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Genie:  Listen on a Unix-domain socket at startup\n\nOn OS X 10.4 at least, this fails as is because a global variable in the\nPedestal library doesn't get statically initialized before it gets used,\neven though it's defined in the same translation unit -- a compiler bug,\nin all likelihood.  If you ignore gNewWindow and just call NewCWindow(),\nit works, but then the application segfaults on quit.  (This is a static\ndestruction ordering issue that should go away after FORGE is revised to\nindividually allocate view properties.)  It's all good in 10.8, however.","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/416d7ccff67393621aafca17a3f9ff6690946099"},{"sha":"11bb4b65b84af361ff348b4e00a4ee39731afbdc","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Genie:  Start a new thread per client","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/11bb4b65b84af361ff348b4e00a4ee39731afbdc"},{"sha":"bbaa1f5843585aaa7d20af65ccaadc01b1b66275","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"stream:  Add --into option","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/bbaa1f5843585aaa7d20af65ccaadc01b1b66275"},{"sha":"bebb91b96d1a9ad467d1da0967ab7d5e811e0c8f","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"relix:  Add thread synchronization utilities","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/bebb91b96d1a9ad467d1da0967ab7d5e811e0c8f"},{"sha":"b29002e22c813ea6ea43c545fba0cc0eb492e878","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"relix:  Call pthread_yield() from is_active()\n\nThis ensures that pthreads get a chance to use the sync mutex in between\ncalls to WaitNextEvent().","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/b29002e22c813ea6ea43c545fba0cc0eb492e878"},{"sha":"8074a4a38aea307402f839f6cf221ff695141bbe","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Genie:  Call relix::pthread_yield() from yield()\n\nIn MacRelix proper, Yield() boils down to a YieldToAnyThread() call, but\notherwise we can assume that yield() is called by a pthread, in order to\nyield the sync mutex to other pthreads and the application's cooperative\nthreads.","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/8074a4a38aea307402f839f6cf221ff695141bbe"},{"sha":"2d53d74204a93a76a89edab0f5ec34b0c3356b85","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Merge branch 'thread-sync'","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/2d53d74204a93a76a89edab0f5ec34b0c3356b85"},{"sha":"be5ada5fae4ef77d3e9a4c7169eca3717e45e41f","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Genie:  Synchronize client threads with the app","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/be5ada5fae4ef77d3e9a4c7169eca3717e45e41f"},{"sha":"d1d7a2a7e869a0a21c2f2f64210f477de41e1790","author":{"name":"Josh Juran","email":"35fd6a95ce8ebf5545fbb3e7f83e9f9a01a128f4@metamage.com"},"message":"Genie:  Spawn a Freemount service on startup","distinct":true,"url":"https://api.github.com/repos/jjuran/metamage_1/commits/d1d7a2a7e869a0a21c2f2f64210f477de41e1790"}]}
{"actor":{"display_login":"jjuran"}}