{"push_id":754984744,"size":7,"distinct_size":7,"ref":"refs/heads/copool","head":"693182f2e9bab22c5a494b837e0cae20729db24c","before":"34b8160d570d089cab177f245faa2175e646fba5","commits":[{"sha":"256d99722490846ddb1c2f3200140f7a952581e3","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Add copools, which are a pool of coprocesses for handling arbitrary work.\n\ncopool_start FUNC N: A master coproc will spawn N child coprocs that\neach will run FUNC_main. The copool_start() function also set\nCOPOOL_HANDLE that should later be used to stop the copool.\n\nThe child workers and main work queue are maintained via fifos.\n\ncopool_send_work WORK: The WORK will be sent to the next available\nworker in the pool.\n\nThe child workers should loop on copool_wait_for_work which will set\nCOPOOL_WORK to be processed. The result code of the processing should be\npassed back as the parameter to the next copool_wait_for_work call.\n\ncopool_stop COPOOL_HANDLE: Notify the pool that no more work is coming\nand that all workers should exit once done. This call blocks until all\nworkers exit.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/256d99722490846ddb1c2f3200140f7a952581e3"},{"sha":"f2f63c51bbfa66769a1a352f5e4c3cef604cbd7c","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Add coparallel feature which replaces the older parallel_start/run with preforked workers.\n\ncoparallel_start N will start N workers.\ncoparallel_run FUNC PARAMS... will run the given function and arguments\n  on the next available worker.\ncoparallel_stop will wait for all work to be done and stop all workers.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/f2f63c51bbfa66769a1a352f5e4c3cef604cbd7c"},{"sha":"83b2070cd094338a61d997cd9d601cc35b3d5a79","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"distclean: Convert to coparallel.\n\nMust pass PORTSDIR down into the work function now since the prefork\nchild will only setup its environment on startup, not on each work\nitem.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/83b2070cd094338a61d997cd9d601cc35b3d5a79"},{"sha":"0d9ab80e592f83f367b7366700d819602bef4cfe","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Convert incremental deletion into coparallel","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/0d9ab80e592f83f367b7366700d819602bef4cfe"},{"sha":"02611ddbc8c992bdcfa10acc93680bac3154af0f","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Convert sanity check to coparallel","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/02611ddbc8c992bdcfa10acc93680bac3154af0f"},{"sha":"4130951ec05ea87c40fdeca495c98b27c8a287b9","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Convert pkg_cacher to a copool.\n\nThis also required refactoring cleanup a little such that pkg_cacher\nis cleaned up before killing the jail and not necesarilly relying\non having started a jail to cleanup the pkg_cacher pool.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/4130951ec05ea87c40fdeca495c98b27c8a287b9"},{"sha":"693182f2e9bab22c5a494b837e0cae20729db24c","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Add copool_wait and coparallel_wait.\n\nThese will wait on all work to be completed, return the current\nexit status and then reset the exit status. This will be used\nto keep a consistent set of coparallel workers running without\nneeding to refork the set for each individual task.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/693182f2e9bab22c5a494b837e0cae20729db24c"}]}