about summary refs log tree commit diff
path: root/src/libutil/thread-pool.cc
AgeCommit message (Collapse)AuthorFilesLines
2017-10-09 Fix a hang in ThreadPoolEelco Dolstra1-30/+51
The worker threads could exit prematurely if they finished processing all items while the main thread was still adding items. In particular, this caused hanging nix-store --serve processes in the build farm. Also, process items from the main thread.
2017-09-08 ThreadPool: On exception, interrupt the other worker threadsEelco Dolstra1-4/+6
2017-09-08 ThreadPool: Improve exception handlingEelco Dolstra1-23/+52
In particular, process() won't return as long as there are active items. This prevents work item lambdas from referring to stack frames that no longer exist.
2016-09-21 printMsg(lvlError, ...) -> printError(...) etc.Eelco Dolstra1-1/+1
2016-07-21 Fix assertion failure in ThreadPool::enqueue()Eelco Dolstra1-2/+4
2016-04-22 ThreadPool: Start doing work as soon as work items are enqueuedEelco Dolstra1-55/+75
2016-03-29 Improve SIGINT handling in multi-threaded programsEelco Dolstra1-3/+4
The flag remembering whether an Interrupted exception was thrown is now thread-local. Thus, all threads will (eventually) throw Interrupted. Previously, one thread would throw Interrupted, and then the other threads wouldn't see that they were supposed to quit.
2016-03-29 Add "nix verify-paths" commandEelco Dolstra1-0/+81
Unlike "nix-store --verify-path", this command verifies signatures in addition to store path contents, is multi-threaded (especially useful when verifying binary caches), and has a progress indicator. Example use: $ nix verify-paths --store https://cache.nixos.org -r $(type -p thunderbird) ... [17/132 checked] checking ‘/nix/store/rawakphadqrqxr6zri2rmnxh03gqkrl3-autogen-5.18.6’