Commit Graph

29 Commits

Author SHA1 Message Date
Matthew Flatt
8fab527ce3 fix problems with `would-be-future' 2012-10-30 17:28:37 -06:00
James Swaine
9a0f19da59 Fix futures-disabled build errors introduced by changes to even? and odd? 2012-10-19 13:49:05 -05:00
James Swaine
05e0836b88 Make odd? and even? future-safe 2012-10-18 21:22:11 -05:00
Matthew Flatt
33db9589a4 make `list-ref' future-safe even for large fixnum indices 2012-10-14 11:10:23 -04:00
James Swaine
b6f71ec4be Add futures visualizer, improvements to futures logging 2012-07-10 10:54:42 -05:00
Matthew Flatt
5433d2302a fix some error-message tests 2012-06-23 05:21:52 -07:00
Matthew Flatt
40c892ff80 futures: future-local handling of stack overflow
Includes the addition of 'overflow and 'start-overflow-work
events, whcih are effectively specializations of 'sync and
'start-work to expose overflow handling.

Also, fix a bug related to a potential GC during mark-stack
restore from a lightweight continuation.
2012-06-21 07:14:50 +08:00
Matthew Flatt
0d88a08c48 implement branch mode JIT generation for `box-cas!'
Also, move slow path into common code
2012-05-03 19:22:46 -06:00
Aaron Turon
868dcb6d57 Add box-cas!' and unsafe-box*-cas!'.
These primitives atomically update a box to a new value, as long
as the current value is the same as a provided value.  They also
are future-safe.

When futures are enabled, they use low-level hardware instructions
to perform the change atomically.
2012-05-03 19:19:24 -06:00
Eli Barzilay
f7c67b49a4 Big newline at EOF scan. 2012-02-29 00:28:11 -05:00
James Swaine
7114f08c0b Added tests for would-be-future
Minor fixes to would-be-future
Added futures-enabled? primitive
Added primitive name to future-event struct
2012-02-12 01:32:30 -06:00
James Swaine
e9460282ac Deleted junk code that was commented out in the futures test suite 2011-07-14 19:44:19 -06:00
James Swaine
32a3828a2e Made continuation-mark-set-first future-safe. Fixed a rarely occurring bug with lightweight continuation capture for futures. 2011-07-14 19:30:52 -06:00
Matthew Flatt
3bf0f800a7 futures: make `future' work in a future, overhaul logging, fix bugs 2011-04-06 17:40:44 -06:00
Matthew Flatt
b9c4bbae67 futures: limit parallelism via custodians
Closes PR 11682
2011-03-15 14:43:18 -06:00
Matthew Flatt
6041833ac5 fsemaphore cleanup
- abstract over JIT inlining of fsemaphore operations
 - fix problems with non-parallel fsemaphores
 - adjust tests so they don't assume too much concurrency
 - clarify fsemaphore vs. semaphore in the docs
2011-02-18 09:55:01 -07:00
James Swaine
ca5c061a71 Fix fsemaphore-try-wait? so the sema's count is decremented. Make fsemaphore-wait and other futures-related functions cooperate with the GC better. 2011-02-16 21:14:14 -06:00
James Swaine
c6642de116 Added future semaphores (fsemaphores) 2011-02-15 23:27:03 -06:00
James Swaine
19dbee0405 Added semaphores for futures 2011-02-08 17:58:02 -06:00
James Swaine
0a73a9d5a1 Added semaphores for futures 2011-02-08 17:55:12 -06:00
Matthew Flatt
da6d4f3fba futures: fix `future' when given a non-JITted procedure
Merge to 5.1
2011-02-05 06:43:09 -07:00
Matthew Flatt
65ad6aee20 fix `touch' to run a suspended future in the runtime thread
if no future thread is running the future; also adjust the
 policy for suspending a future so that even synchronized
 operations can suspend if there's other work to be done;
 also also fix `current-future' for nested `touch'es and when
 parallel futures are disabled
2010-10-07 14:58:53 -06:00
Matthew Flatt
15302dc844 adjust futures to decouple blocked futures from worker threads
which required adding a notion of "lightweight continuation" to
 the runtime system, where a lightweight continuation involves
 only frames from JIT0generated code (so that details of the stack
 layout are known, for example)
2010-10-07 07:39:16 -06:00
James Swaine
1a2c0546a6 current-future now returns #f if not inside a future, instead of null. Added documentation for current-future. 2010-08-19 09:36:25 -05:00
James Swaine
a41c9b882a Added (current-future) to the futures module (as an inlined, nonblocking primitive). 2010-08-18 23:33:22 -05:00
Eli Barzilay
7b14a1f585 "Racunit" -> "Rackunit" 2010-05-17 12:07:32 -04:00
Jay McCarthy
bc5cf30ebe Renaming rktunit to racunit 2010-04-30 10:57:32 -06:00
Jay McCarthy
f70ffca756 Renaming schemeunit to rktunit and adding compat layer 2010-04-29 15:00:02 -06:00
Matthew Flatt
28b4043077 rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00