| Mon, 31 May 2010 21:06:57 +0200 |
wenzelm |
modernized some structure names, keeping a few legacy aliases;
|
file |
diff |
annotate
|
| Sat, 29 May 2010 15:31:15 +0200 |
wenzelm |
future result: retain plain Interrupt for vacuous group exceptions;
|
file |
diff |
annotate
|
| 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);
|
file |
diff |
annotate
|
| Sat, 06 Feb 2010 22:06:18 +0100 |
wenzelm |
result: Single_Assignment.var;
|
file |
diff |
annotate
|
| Wed, 06 Jan 2010 18:22:43 +0100 |
wenzelm |
more robust cancelation, notably of passive futures without scheduler running;
|
file |
diff |
annotate
|
| 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);
|
file |
diff |
annotate
|
| 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);
|
file |
diff |
annotate
|
| Tue, 05 Jan 2010 23:38:10 +0100 |
wenzelm |
added Future.promise/fulfill -- promised futures that are fulfilled by external means;
|
file |
diff |
annotate
|
| Thu, 05 Nov 2009 13:16:22 +0100 |
wenzelm |
scheduler: clarified interrupt attributes and handling;
|
file |
diff |
annotate
|
| Thu, 05 Nov 2009 13:01:11 +0100 |
wenzelm |
worker_next: plain signalling via work_available only, not scheduler_event;
|
file |
diff |
annotate
|
| Wed, 04 Nov 2009 21:22:35 +0100 |
wenzelm |
avoid broadcast work_available, use daisy-chained signal instead;
|
file |
diff |
annotate
|
| Wed, 04 Nov 2009 20:31:36 +0100 |
wenzelm |
worker_next: treat wait for work_available as Sleeping, not Waiting;
|
file |
diff |
annotate
|
| Wed, 04 Nov 2009 11:58:29 +0100 |
wenzelm |
worker activity: distinguish between waiting (formerly active) and sleeping;
|
file |
diff |
annotate
|
| Wed, 04 Nov 2009 11:37:06 +0100 |
wenzelm |
tuned;
|
file |
diff |
annotate
|
| Wed, 04 Nov 2009 11:30:22 +0100 |
wenzelm |
tuned thread data;
|
file |
diff |
annotate
|
| 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);
|
file |
diff |
annotate
|
| Tue, 03 Nov 2009 19:52:09 +0100 |
wenzelm |
slightly leaner and more direct control of worker activity etc.;
|
file |
diff |
annotate
|
| Thu, 22 Oct 2009 15:21:01 +0200 |
wenzelm |
use Synchronized.assign to achieve actual immutable results;
|
file |
diff |
annotate
|
| Thu, 01 Oct 2009 16:27:13 +0200 |
wenzelm |
added Task_Queue.depend (again) -- light-weight version for transitive graph;
|
file |
diff |
annotate
|
| Tue, 29 Sep 2009 11:49:22 +0200 |
wenzelm |
explicit indication of Unsynchronized.ref;
|
file |
diff |
annotate
|
| Mon, 28 Sep 2009 12:09:18 +0200 |
wenzelm |
added fork_deps_pri;
|
file |
diff |
annotate
|
| Tue, 22 Sep 2009 20:25:31 +0200 |
wenzelm |
full reserve of worker threads -- for improved CPU utilization;
|
file |
diff |
annotate
|
| Sun, 20 Sep 2009 19:17:33 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Sun, 20 Sep 2009 18:37:55 +0200 |
wenzelm |
scheduler backdoor: 9999 means 1 worker;
|
file |
diff |
annotate
|
| Wed, 16 Sep 2009 22:46:10 +0200 |
wenzelm |
Synchronized.value does not require locking, since assigments are atomic;
|
file |
diff |
annotate
|
| Thu, 27 Aug 2009 17:00:03 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Sat, 01 Aug 2009 00:17:03 +0200 |
wenzelm |
future scheduler: uninterruptible cancelation;
|
file |
diff |
annotate
|
| Sat, 01 Aug 2009 00:09:45 +0200 |
wenzelm |
renamed Multithreading.regular_interrupts to Multithreading.public_interrupts;
|
file |
diff |
annotate
|
| Thu, 30 Jul 2009 23:37:53 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Thu, 30 Jul 2009 23:06:06 +0200 |
wenzelm |
added Multithreading.sync_wait, which turns enabled interrupts to sync ones, to ensure that wait will reaquire its lock when interrupted;
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 16:30:23 +0200 |
wenzelm |
eliminated separate Future.enabled -- let Future.join fail explicitly in critical section, instead of entering sequential mode silently;
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 15:10:15 +0200 |
wenzelm |
future result: Synchronized.var;
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 14:35:27 +0200 |
wenzelm |
Task_Queue.dequeue: explicit thread;
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 14:29:25 +0200 |
wenzelm |
more precise treatment of scheduler_event: continous pulse (50ms) instead of flooding, which was burning many CPU cycles in spare threads;
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 14:11:15 +0200 |
wenzelm |
interruptible_task: unified treatment of Multithreading.with_attributes (cf. 9f6461b1c9cc);
|
file |
diff |
annotate
|
| Tue, 28 Jul 2009 14:04:33 +0200 |
wenzelm |
misc tuning;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 17:36:30 +0200 |
wenzelm |
interruptible: Thread.testInterrupt before changing thread attributes;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 17:12:19 +0200 |
wenzelm |
wait: absorb spurious interrupts;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 16:53:28 +0200 |
wenzelm |
scheduler: shutdown spontaneously (after some delay) if queue is empty;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 16:08:41 +0200 |
wenzelm |
join_next: do not yield, even if overloaded, to minimize "running" tasks;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 15:53:43 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 15:30:21 +0200 |
wenzelm |
cancel: improved reactivity due to more careful broadcasting;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 15:06:33 +0200 |
wenzelm |
dequeue_towards: always return active tasks;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 13:32:23 +0200 |
wenzelm |
removed unused low-level interrupts;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 12:16:58 +0200 |
wenzelm |
tuned;
|
file |
diff |
annotate
|
| Mon, 27 Jul 2009 12:11:18 +0200 |
wenzelm |
more specific conditions: scheduler_event, work_available, work_finished -- considereably reduces overhead with many threads;
|
file |
diff |
annotate
|
| Sat, 25 Jul 2009 00:53:47 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Wed, 22 Jul 2009 10:46:35 +0200 |
wenzelm |
future_job: more robust Exn.capture outside thread attribute change;
|
file |
diff |
annotate
|
| Tue, 21 Jul 2009 23:42:29 +0200 |
wenzelm |
future_job: tight scope for interrupts, to prevent shooting ourselves in the foot via cancel_group;
|
file |
diff |
annotate
|
| Tue, 21 Jul 2009 20:37:31 +0200 |
wenzelm |
added worker_group;
|
file |
diff |
annotate
|
| Tue, 21 Jul 2009 15:25:22 +0200 |
wenzelm |
propagate exceptions within future groups;
|
file |
diff |
annotate
|
| Tue, 21 Jul 2009 13:42:48 +0200 |
wenzelm |
tuned;
|
file |
diff |
annotate
|
| Tue, 21 Jul 2009 11:30:12 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Sun, 19 Jul 2009 18:02:40 +0200 |
wenzelm |
more abstract Future.is_worker;
|
file |
diff |
annotate
|
| Sun, 19 Jul 2009 14:14:25 +0200 |
wenzelm |
recovered a version of dequeue_towards (cf. bb7b5a5942c7);
|
file |
diff |
annotate
|
| Sat, 18 Jul 2009 22:52:31 +0200 |
wenzelm |
scheduler: tuned tracing (status);
|
file |
diff |
annotate
|
| Sun, 14 Jun 2009 23:24:38 +0200 |
wenzelm |
simplified join: do not record dependencies (which are slow, but were only required for dequeue_towards);
|
file |
diff |
annotate
|
| Sun, 14 Jun 2009 02:21:46 +0200 |
wenzelm |
tuned join: produce less garbage while waiting;
|
file |
diff |
annotate
|
| Sat, 13 Jun 2009 19:40:37 +0200 |
wenzelm |
simplified join_results: no longer work "towards" deps, which simplifies task queue management and maintains strict bottom up discipline (without "transfer of priority" to required futures);
|
file |
diff |
annotate
|
| Mon, 23 Mar 2009 11:20:46 +0100 |
wenzelm |
future scheduler: reduced wait timeout if tasks need to be canceled -- to improve reactivity of interrupts;
|
file |
diff |
annotate
|
| Sat, 21 Mar 2009 13:11:12 +0100 |
wenzelm |
restricted interrupts for tasks running as future worker thread -- attempt to prevent interrupt race conditions;
|
file |
diff |
annotate
|
| Fri, 20 Mar 2009 20:20:09 +0100 |
wenzelm |
future_job: do not inherit attributes, but enforce restricted interrupts -- attempt to prevent interrupt race conditions;
|
file |
diff |
annotate
|
| Sun, 18 Jan 2009 16:42:43 +0100 |
wenzelm |
join_results: when dependencies are resulved (but not finished yet),
|
file |
diff |
annotate
|
| Sat, 10 Jan 2009 16:53:12 +0100 |
wenzelm |
added cancel_group;
|
file |
diff |
annotate
|
| Wed, 07 Jan 2009 17:26:03 +0100 |
wenzelm |
more robust propagation of errors through bulk jobs;
|
file |
diff |
annotate
|
| Tue, 06 Jan 2009 13:46:48 +0100 |
wenzelm |
tuned map: reduced overhead due to bulk jobs;
|
file |
diff |
annotate
|
| Sat, 03 Jan 2009 21:45:53 +0100 |
wenzelm |
more reactive scheduler: reduced loop timeout, propagate broadcast interrupt via TaskQueue.cancel_all;
|
file |
diff |
annotate
|
| Tue, 16 Dec 2008 16:25:18 +0100 |
wenzelm |
renamed structure TaskQueue to Task_Queue;
|
file |
diff |
annotate
|
| Tue, 16 Dec 2008 12:13:53 +0100 |
wenzelm |
removed old scheduler;
|
file |
diff |
annotate
|
| Sat, 06 Dec 2008 00:01:57 +0100 |
wenzelm |
added constant value;
|
file |
diff |
annotate
|
| Thu, 04 Dec 2008 23:46:20 +0100 |
wenzelm |
fork/map: no inheritance of group (structure is nested, not parallel);
|
file |
diff |
annotate
|
| Thu, 04 Dec 2008 23:00:27 +0100 |
wenzelm |
renamed type Future.T to future;
|
file |
diff |
annotate
|
| Tue, 21 Oct 2008 16:53:00 +0200 |
wenzelm |
join_results: allow CRITICAL join of finished futures;
|
file |
diff |
annotate
|
| Tue, 21 Oct 2008 15:01:18 +0200 |
wenzelm |
added Future.enabled check;
|
file |
diff |
annotate
|
| Mon, 13 Oct 2008 15:48:37 +0200 |
wenzelm |
SimpleThread.synchronized;
|
file |
diff |
annotate
|
| Thu, 09 Oct 2008 21:34:11 +0200 |
wenzelm |
replaced str_of by general peek;
|
file |
diff |
annotate
|
| Thu, 09 Oct 2008 20:53:15 +0200 |
wenzelm |
future result: Interrupt invalidates group, but pretends success otherwise;
|
file |
diff |
annotate
|
| Wed, 08 Oct 2008 20:37:44 +0200 |
wenzelm |
less tracing;
|
file |
diff |
annotate
|
| Wed, 08 Oct 2008 20:21:34 +0200 |
wenzelm |
more careful handling of group interrupts;
|
file |
diff |
annotate
|
| Fri, 03 Oct 2008 00:21:48 +0200 |
wenzelm |
tuned tracing;
|
file |
diff |
annotate
|
| Fri, 03 Oct 2008 00:12:13 +0200 |
wenzelm |
slower heartbeat;
|
file |
diff |
annotate
|
| Thu, 02 Oct 2008 23:52:12 +0200 |
wenzelm |
added simple heartbeat thread;
|
file |
diff |
annotate
|
| Thu, 02 Oct 2008 23:30:44 +0200 |
wenzelm |
more tuning of tracing messages;
|
file |
diff |
annotate
|
| Thu, 02 Oct 2008 19:59:00 +0200 |
wenzelm |
tuned SYNCHRONIZED: outermost Exn.release;
|
file |
diff |
annotate
|
| Wed, 01 Oct 2008 12:00:01 +0200 |
wenzelm |
removed release_results (cf. Exn.release_all, Exn.release_first);
|
file |
diff |
annotate
|
| Tue, 30 Sep 2008 22:02:45 +0200 |
wenzelm |
renamed Future.fork_irrelevant to Future.fork_background;
|
file |
diff |
annotate
|
| Mon, 29 Sep 2008 21:26:46 +0200 |
wenzelm |
added str_of;
|
file |
diff |
annotate
|
| Sun, 28 Sep 2008 12:23:45 +0200 |
wenzelm |
proper setmp_thread_data for nested execute (cf. join_loop);
|
file |
diff |
annotate
|
| Sun, 28 Sep 2008 00:00:55 +0200 |
wenzelm |
thread_data: include thread name, export access;
|
file |
diff |
annotate
|
| Sat, 27 Sep 2008 18:18:06 +0200 |
wenzelm |
added release_results (formerly in par_list.ML);
|
file |
diff |
annotate
|
| Sat, 27 Sep 2008 15:37:01 +0200 |
wenzelm |
more tracing;
|
file |
diff |
annotate
|
| Tue, 23 Sep 2008 15:48:53 +0200 |
wenzelm |
join_results: special case for empty list, works without multithreading;
|
file |
diff |
annotate
|
| Mon, 22 Sep 2008 15:26:14 +0200 |
wenzelm |
added is_finished;
|
file |
diff |
annotate
|
| Fri, 19 Sep 2008 21:22:31 +0200 |
wenzelm |
future tasks: support boolean priorities (true = high, false = low/irrelevant);
|
file |
diff |
annotate
|
| Wed, 17 Sep 2008 22:06:52 +0200 |
wenzelm |
shutdown only if Multithreading.available;
|
file |
diff |
annotate
|
| Tue, 16 Sep 2008 15:37:33 +0200 |
wenzelm |
SimpleThread.fork;
|
file |
diff |
annotate
|
| Thu, 11 Sep 2008 22:22:59 +0200 |
wenzelm |
cancel, shutdown: notify_all;
|
file |
diff |
annotate
|
| Thu, 11 Sep 2008 21:53:53 +0200 |
wenzelm |
eliminated requests, use global state variables uniformly;
|
file |
diff |
annotate
|
| Thu, 11 Sep 2008 21:04:05 +0200 |
wenzelm |
shutdown: global join-and-shutdown operation;
|
file |
diff |
annotate
|
| Thu, 11 Sep 2008 18:07:58 +0200 |
wenzelm |
added focus, which indicates a particular collection of high-priority tasks;
|
file |
diff |
annotate
|
| Thu, 11 Sep 2008 13:43:42 +0200 |
wenzelm |
some general notes on future values;
|
file |
diff |
annotate
|
| Wed, 10 Sep 2008 23:28:09 +0200 |
wenzelm |
added interrupt_task (external id);
|
file |
diff |
annotate
|
| Wed, 10 Sep 2008 21:50:30 +0200 |
wenzelm |
replaced join_all by join_results, which returns Exn.results;
|
file |
diff |
annotate
|
| Wed, 10 Sep 2008 20:28:01 +0200 |
wenzelm |
workers: explicit activity flag;
|
file |
diff |
annotate
|
| Wed, 10 Sep 2008 19:44:29 +0200 |
wenzelm |
future: allow explicit group;
|
file |
diff |
annotate
|
| Tue, 09 Sep 2008 23:30:05 +0200 |
wenzelm |
cancel: check_scheduler;
|
file |
diff |
annotate
|
| Tue, 09 Sep 2008 16:29:34 +0200 |
wenzelm |
inherit group from running thread, or create a new one -- make it harder to re-use canceled groups;
|
file |
diff |
annotate
|
| Mon, 08 Sep 2008 20:35:38 +0200 |
wenzelm |
tuned Mailbox.send;
|
file |
diff |
annotate
|
| Mon, 08 Sep 2008 20:33:24 +0200 |
wenzelm |
more interrupt operations;
|
file |
diff |
annotate
|
| Mon, 08 Sep 2008 16:08:23 +0200 |
wenzelm |
moved task, thread_data, group, queue to task_queue.ML;
|
file |
diff |
annotate
|
| Mon, 08 Sep 2008 00:25:34 +0200 |
wenzelm |
await: SYNCHRONIZED wait!
|
file |
diff |
annotate
|
| Mon, 08 Sep 2008 00:10:41 +0200 |
wenzelm |
tuned check_cache;
|
file |
diff |
annotate
|
| Sun, 07 Sep 2008 22:19:42 +0200 |
wenzelm |
Functional threads as future values.
|
file |
diff |
annotate
|