{"push_id":755106554,"size":8,"distinct_size":8,"ref":"refs/heads/copool","head":"38257b0a38dd994222082d2a63a874feb5f51bd6","before":"693182f2e9bab22c5a494b837e0cae20729db24c","commits":[{"sha":"c3b8a9f577bafbea72b1c6a7f7140f5984c473f8","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/c3b8a9f577bafbea72b1c6a7f7140f5984c473f8"},{"sha":"5bfd1ca326e15d5022f3b4cfa39eb45c7a727db0","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/5bfd1ca326e15d5022f3b4cfa39eb45c7a727db0"},{"sha":"09ff672da380dfd64da51de6337e2d8e09579e5b","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/09ff672da380dfd64da51de6337e2d8e09579e5b"},{"sha":"6cc1f7ac0742f95516211fcd0a100adb7431f95e","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/6cc1f7ac0742f95516211fcd0a100adb7431f95e"},{"sha":"95e93d457c73c0e74eb4b7e464fba72bd8d2c977","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/95e93d457c73c0e74eb4b7e464fba72bd8d2c977"},{"sha":"290d7dddb6970fdf56f24990845b799196e38069","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/290d7dddb6970fdf56f24990845b799196e38069"},{"sha":"7e5362f8b92fa88982e27b5a67bd0861aeb8f24c","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/7e5362f8b92fa88982e27b5a67bd0861aeb8f24c"},{"sha":"38257b0a38dd994222082d2a63a874feb5f51bd6","author":{"email":"0a3ba1af216659500dd8f41e29f3979f42452870@shatow.net","name":"Bryan Drewery"},"message":"Kill off jobs after copools.\n\nOtherwise the copool_stop write of !COPOOL_END will be to a pipe\nwith no reader.","distinct":true,"url":"https://api.github.com/repos/bdrewery/poudriere-private/commits/38257b0a38dd994222082d2a63a874feb5f51bd6"}]}