{"shas":[["832aa70ac65e17ee719134d674652d951e1a0426","62402a0eaf06e7ac9cb09b312ba3895e3995aab7@gmail.com","Give each thread its own SelectSet.\n\nSimilar reasons and benefits as the TimerSet version.\n\nSimultaneously simplify the wakeup plan for signals and cross-thread\ncommunication.  The _wake_pipe, previously multithread-only, moves to\nSelectSet, and is used even when single threaded.  This requires care (an\noptimized path for the no-selector case must be aware of the _wake_pipe).\n\nThis slows the NullTask test down relative to the previous commit,\nsomething to be addressed later.\n\nAnd make sure that the select lock is released whenever signals are\nprocessed.\n\nSigned-off-by: Eddie Kohler <ekohler@gmail.com>","Eddie Kohler"]],"ref":"refs/heads/threading2","size":1,"head":"832aa70ac65e17ee719134d674652d951e1a0426","push_id":32851665}