src/Pure/Concurrent/future.ML
Fri, 19 Aug 2011 12:51:14 +0200 wenzelm more focused use of Multithreading.interrupted: retain interrupts within task group boundary, without loss of information;
Fri, 19 Aug 2011 12:03:44 +0200 wenzelm clarified Future.cond_forks: more uniform handling of exceptional situations;
Thu, 18 Aug 2011 16:07:58 +0200 wenzelm tuned comments;
Wed, 17 Aug 2011 23:37:23 +0200 wenzelm identify parallel exceptions where they emerge first -- to achieve unique results within evaluation graph;
Wed, 17 Aug 2011 22:14:22 +0200 wenzelm more systematic handling of parallel exceptions;
Mon, 15 Aug 2011 19:27:55 +0200 wenzelm explicit check of finished evaluation;
Sat, 13 Aug 2011 00:34:54 +0200 wenzelm immediate fork of initial workers -- avoid 5 ticks (250ms) for adaptive scheme (a07558eb5029);
Wed, 10 Aug 2011 16:26:05 +0200 wenzelm tuned signature;
Wed, 10 Aug 2011 16:05:14 +0200 wenzelm future_job: explicit indication of interrupts;
Wed, 10 Aug 2011 14:28:55 +0200 wenzelm synchronized cancel and flushing of Multithreading.interrupted state, to ensure that interrupts stay within task boundaries;
Wed, 10 Aug 2011 14:04:45 +0200 wenzelm tuned source structure;
Sat, 23 Jul 2011 22:22:21 +0200 wenzelm make double-sure that interrupts are flushed before executing new work (cf. 22f8c2483bd2);
Sat, 23 Jul 2011 21:29:56 +0200 wenzelm more detailed tracing;
Mon, 11 Jul 2011 22:55:47 +0200 wenzelm tuned signature -- corresponding to Scala version;
Tue, 05 Jul 2011 11:16:37 +0200 wenzelm tuned signature;
Thu, 23 Jun 2011 23:12:00 +0200 wenzelm more robust join_results: join_work needs to be uninterruptible, otherwise the task being dequeued by join_next might be never executed/finished!
Sat, 26 Mar 2011 21:28:04 +0100 wenzelm added Future.cond_forks convenience;
Fri, 18 Feb 2011 16:11:58 +0100 wenzelm less verbose tracing;
Wed, 09 Feb 2011 15:48:43 +0100 wenzelm tuned scope of Multithreading.interrupted vs. Multithreading.with_attributes;
Tue, 08 Feb 2011 16:11:52 +0100 wenzelm explicit Multithreading.interrupted to ensure that interrupts stay within the boundaries of managed evaluation blocks;
Fri, 04 Feb 2011 20:40:25 +0100 wenzelm tuned signature;
Wed, 02 Feb 2011 20:32:50 +0100 wenzelm eliminated slightly odd abstract type Task_Queue.deps;
Wed, 02 Feb 2011 15:04:09 +0100 wenzelm maintain Task_Queue.group within Task_Queue.task;
Wed, 02 Feb 2011 13:38:09 +0100 wenzelm Future.join_results: discontinued post-hoc recording of dynamic dependencies;
Tue, 01 Feb 2011 22:24:28 +0100 wenzelm more informative task timing: some dependency tracking;
Tue, 01 Feb 2011 21:05:22 +0100 wenzelm refined task timing: joining vs. waiting;
Mon, 31 Jan 2011 23:02:53 +0100 wenzelm tuned signature;
Mon, 31 Jan 2011 22:57:01 +0100 wenzelm support named tasks, for improved tracing;
Mon, 31 Jan 2011 21:54:49 +0100 wenzelm more direct Future.bulk, which potentially reduces overhead for Par_List;
Mon, 31 Jan 2011 16:34:10 +0100 wenzelm added basic task timing;
Tue, 09 Nov 2010 21:13:06 +0100 wenzelm explicitly identify forked/joined tasks;
Tue, 02 Nov 2010 20:55:12 +0100 wenzelm simplified some time constants;
Fri, 10 Sep 2010 14:54:08 +0200 wenzelm Future.promise: more robust treatment of concurrent abort vs. fulfill (amending 047c96f41455);
Thu, 09 Sep 2010 17:20:27 +0200 wenzelm more abstract treatment of interrupts in structure Exn -- hardly ever need to mention Interrupt literally;
Sun, 08 Aug 2010 19:36:31 +0200 wenzelm explicitly distinguish Output.status (essential feedback) vs. Output.report (useful markup);
Thu, 22 Jul 2010 10:41:12 +0200 wenzelm tuned comments;
Wed, 21 Jul 2010 13:25:14 +0200 wenzelm clarified/exported Future.worker_subgroup, which is already the default for Future.fork;
Tue, 20 Jul 2010 17:35:42 +0200 wenzelm back to more strict dependencies, even for canceled groups (reverting parts of 02936e77a07c);
Tue, 20 Jul 2010 14:44:33 +0200 wenzelm eliminated old-style sys_error/SYS_ERROR in favour of exception Fail -- after careful checking that there is no overlap with existing handling of that;
Sun, 04 Jul 2010 21:01:22 +0200 wenzelm general Future.report -- also for Toplevel.async_state;
Fri, 02 Jul 2010 20:44:17 +0200 wenzelm tuned white space;
Mon, 31 May 2010 21:06:57 +0200 wenzelm modernized some structure names, keeping a few legacy aliases;
Sat, 29 May 2010 15:31:15 +0200 wenzelm future result: retain plain Interrupt for vacuous group exceptions;
Fri, 21 May 2010 21:28:31 +0200 wenzelm future_job: propagate current Position.thread_data to the forked job -- this is important to provide a default position, e.g. for parallelizied Goal.prove within a package (proper command transactions are wrapped via Toplevel.setmp_thread_position);
Sat, 06 Feb 2010 22:06:18 +0100 wenzelm result: Single_Assignment.var;
Wed, 06 Jan 2010 18:22:43 +0100 wenzelm more robust cancelation, notably of passive futures without scheduler running;
Wed, 06 Jan 2010 18:14:16 +0100 wenzelm eliminated cache, which complicates the code without making a real difference (NB: deque_towards often disrupts caching, and daisy-chaining of workers already reduces queue overhead);
Wed, 06 Jan 2010 15:07:56 +0100 wenzelm tasks of canceled groups are considered "ready" -- enables to purge the queue from tasks depending on unfinished promises (also improves general reactivity);
Tue, 05 Jan 2010 23:38:10 +0100 wenzelm added Future.promise/fulfill -- promised futures that are fulfilled by external means;
Thu, 05 Nov 2009 13:16:22 +0100 wenzelm scheduler: clarified interrupt attributes and handling;
Thu, 05 Nov 2009 13:01:11 +0100 wenzelm worker_next: plain signalling via work_available only, not scheduler_event;
Wed, 04 Nov 2009 21:22:35 +0100 wenzelm avoid broadcast work_available, use daisy-chained signal instead;
Wed, 04 Nov 2009 20:31:36 +0100 wenzelm worker_next: treat wait for work_available as Sleeping, not Waiting;
Wed, 04 Nov 2009 11:58:29 +0100 wenzelm worker activity: distinguish between waiting (formerly active) and sleeping;
Wed, 04 Nov 2009 11:37:06 +0100 wenzelm tuned;
Wed, 04 Nov 2009 11:30:22 +0100 wenzelm tuned thread data;
Wed, 04 Nov 2009 00:29:58 +0100 wenzelm worker_next: ensure that work_available is passed on before sleeping (was occasionally lost when worker configuration changed, causing scheduler deadlock);
Tue, 03 Nov 2009 19:52:09 +0100 wenzelm slightly leaner and more direct control of worker activity etc.;
Thu, 22 Oct 2009 15:21:01 +0200 wenzelm use Synchronized.assign to achieve actual immutable results;
Thu, 01 Oct 2009 16:27:13 +0200 wenzelm added Task_Queue.depend (again) -- light-weight version for transitive graph;
less more (0) -100 -60 tip