src/Pure/Concurrent/task_queue.ML
Wed, 15 Jul 2020 16:10:43 +0200 wenzelm clarified user counters: expose tasks to external monitor;
Fri, 06 Jul 2018 16:29:47 +0200 wenzelm just one global lock for group status: avoid proliferation of mutexes, condvars;
Sat, 02 Jun 2018 21:59:11 +0200 wenzelm record active execution task and depend on it -- avoid new executions bumping into old ones;
Wed, 09 May 2018 19:53:37 +0200 wenzelm record total number of tasks;
Tue, 08 Aug 2017 12:21:29 +0200 wenzelm clarified signature;
Thu, 22 Jun 2017 14:27:13 +0200 wenzelm more informative task_statistics;
Mon, 05 Sep 2016 23:11:00 +0200 wenzelm clarified modules;
Sat, 09 Apr 2016 14:00:23 +0200 wenzelm clarified bootstrap;
Wed, 06 Apr 2016 17:16:30 +0200 wenzelm tuned signature;
Sat, 02 Apr 2016 23:29:05 +0200 wenzelm prefer infix operations;
Sat, 02 Apr 2016 21:10:07 +0200 wenzelm careful export of type-dependent functions, without losing their special status;
Fri, 18 Mar 2016 16:26:35 +0100 wenzelm clarified modules;
Mon, 29 Jun 2015 20:55:46 +0200 wenzelm improved scheduling for urgent tasks, using farm of replacement threads (may lead to factor 2 overloading, but CPUs are usually hyperthreaded);
Fri, 09 Jan 2015 21:20:07 +0100 wenzelm clarified active_job: take dependencies into account (e.g. future based on promise);
Fri, 09 Jan 2015 20:51:26 +0100 wenzelm tuned;
Thu, 28 Nov 2013 12:54:39 +0100 wenzelm more official task context via Task_Queue.enroll, which is required to participate in group cancellation (e.g. to terminate command exec);
Sun, 25 Aug 2013 17:04:22 +0200 wenzelm simplified Goal.forked_proofs: status is determined via group instead of dummy future (see also Pure/PIDE/execution.ML);
Mon, 08 Jul 2013 12:00:45 +0200 wenzelm allow worker guest threads, which participate actively in future joins, but are outside thread accounting;
Fri, 05 Jul 2013 23:10:18 +0200 wenzelm more uniform Counter in ML and Scala;
Tue, 14 May 2013 20:46:09 +0200 wenzelm more uniform Markup.print_real;
Fri, 18 Jan 2013 17:51:50 +0100 wenzelm more systematic task statistics;
Wed, 11 Apr 2012 13:49:09 +0200 wenzelm more robust Future.fulfill wrt. duplicate assignment and interrupt;
Mon, 09 Apr 2012 17:22:23 +0200 wenzelm simplified Future.cancel/cancel_group (again) -- running threads only;
Sat, 26 Nov 2011 13:10:12 +0100 wenzelm tuned;
Sun, 06 Nov 2011 13:25:41 +0100 wenzelm optional timing, to avoid redundant allocation of mutable cells;
Thu, 13 Oct 2011 22:50:35 +0200 wenzelm static dummy_task (again) to avoid a few extra allocations;
Sun, 21 Aug 2011 13:23:29 +0200 wenzelm purely functional task_queue.ML -- moved actual interrupt_unsynchronized to future.ML;
Sun, 21 Aug 2011 13:10:48 +0200 wenzelm refined Task_Queue.cancel: passive tasks are considered running due to pending abort operation;
Sat, 20 Aug 2011 23:35:30 +0200 wenzelm refined Graph implementation: more abstract/scalable Graph.Keys instead of plain lists -- order of adjacency is now standardized wrt. Key.ord;
Fri, 19 Aug 2011 15:56:26 +0200 wenzelm refined Future.cancel: explicit future allows to join actual cancellation;
less more (0) -50 -30 tip