{"shas":[["63b086905304b60aa487f0bb498d94f1f6fe95a5","0e18f44c1fec03ec4083422cb58ba6a09ac4fb2a@crossproduct.net","Make owl_select_post_task take a context argument\n\nMake owl_select_post_task take a context argument to indicate /which/ running mainloop it should run the task on, since now there's more than one.","Adam Glasgall"],["1fce268fe8129d5751a1bb35590d4e94070ea683","0e18f44c1fec03ec4083422cb58ba6a09ac4fb2a@crossproduct.net","Move log-writing onto a background thread.\n\nCurrently, Barnowl writes message logs on the same thread as the UI\nand other I/O. This means that if writing log files is very slow\n(e.g. if logpath or classlogpath point to somewhere in AFS and the\nfileserver that volume relies on is very slow to respond), barnowl\nfreezes up until the write completes. This patch creates a background\nlogging thread as part of initialization and runs a main loop on that\nthread. Logging is then accomplished by posting tasks that write to\nlog files to that thread, a la how other threads can post tasks to the\nUI thread's main loop.\n\nPost a quit task to the logging thread's mainloop instead of quitting directly\n\nCalling g_main_quit() on the main thread to quit the logging thread could resultin log tasks still in its queue getting lost. Instead, after we've shut down\neverything that could log messages, post a quit task to the log thread so that\nit'll only get run after everything outstanding has been processed.","Adam Glasgall"]],"ref":"refs/heads/async_logging_v4","size":2,"head":"1fce268fe8129d5751a1bb35590d4e94070ea683","push_id":32490867}