Brian Anderson
f7a727e861
rt: Remove some silly locks in rust_scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
c7777f4fd9
rt: Add sanity checks when we hit the max task/port id
2012-02-03 23:48:12 -08:00
Brian Anderson
12fa90888e
rt: Clean up the way the kernel tracks tasks
2012-02-03 23:48:12 -08:00
Brian Anderson
e7f00b6493
rt: Do all task creation through a scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
bf250bec7c
rt: Create new tasks through the current thread's scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
3d0e7a7af3
rt: Add a field to rust_task to hold its scheduler
2012-02-03 23:48:12 -08:00
Brian Anderson
8d881967a2
rt: Extract rust_scheduler from rust_task_thread
2012-02-03 23:48:12 -08:00
Brian Anderson
f94339cc1c
rt: Rename rust_scheduler to rust_task_thread
2012-02-03 23:48:12 -08:00
Ted Horst
d65eabd5de
log to stderr instead of stdout
...
includes rustc diagnostics
runtest updated to check stderr for errors
2012-02-03 20:55:53 -08:00
Marijn Haverbeke
c1b075d042
Remove experimental GC code
...
It's been sitting unused long enough to have bitrotted completely.
2012-02-03 11:34:12 +01:00
Brian Anderson
1ea184285e
rt: Change the win32 event object to an auto-reset event
...
The way I read the docs, having this be a manual reset event means
that after the first time it's signalled it stays that way until reset,
and we never, ever reset it.
2012-02-02 18:30:06 -08:00
Brian Anderson
3b4dd26ff1
rt: Remove lock_and_signal::signal_all
2012-02-02 18:29:03 -08:00
Brian Anderson
9c33f2c561
rt: Remove lock_and_signal::timed_wait
2012-02-02 18:25:49 -08:00
Brian Anderson
cd774fc5fa
rt: Stop waking up the scheduler on a timer
2012-02-02 18:23:01 -08:00
Brian Anderson
b1a090c7c4
rt: Remove unused arguments in rust_scheduler
2012-02-02 18:17:33 -08:00
Brian Anderson
6c632c71c6
rt: Simplify reap_dead_tasks
2012-02-02 18:10:24 -08:00
Brian Anderson
f719ea552b
rt: Remove rust_scheduler::interrupt_flag. Unused
2012-02-02 18:10:24 -08:00
Brian Anderson
aee83d2ff1
rt: Only wake up all schedulers when no tasks are left
...
At the moment there's not really any reason to be raising this signal,
since they schedulers wake up periodically anyway, but once we remove
the timer this will be how the schedulers know to exit.
2012-02-02 18:10:24 -08:00
Brian Anderson
5c3c8d454d
rt: Do all signalling while holding a lock
...
This will matter once the scheduler is changed to not wake up on a timer
2012-02-02 18:10:24 -08:00
Brian Anderson
5449b886d3
rt: Remove bogus task reaping from the scheduler
2012-02-02 18:10:24 -08:00
Brian Anderson
3978fbff8b
rt: Remove rust_task::can_schedule. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
ed3a5ad5ad
rt: Remove running_on flag. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
57cad61353
rt: Remove task pinning. Does nothing
2012-02-02 18:10:24 -08:00
Brian Anderson
18de0f2aeb
rt: Rename task_sleep intrinsic to task_yield. Remove usec param
2012-02-02 18:10:24 -08:00
Brian Anderson
8693fcc2d7
rt: Remove yield timers
2012-02-02 18:10:24 -08:00
Brian Anderson
7f2980b749
rt: Remove bitrotted tests
2012-02-02 18:10:24 -08:00
Brian Anderson
65f4b0587a
rt: Generate intrinsics
2012-02-02 18:10:23 -08:00
Brian Anderson
bda40e2e4a
rt: Fix intrinsics bustage
...
intrinsics.cpp and the file to generate the ll had bitrotted.
2012-02-02 18:10:23 -08:00
Niko Matsakis
196d69beb2
make boxes self-describing ( fixes #1493 )" (take 2)
...
this will be used to generate a new snapshot.
2012-02-01 18:52:08 -08:00
Niko Matsakis
3116643806
Revert "make boxes self-describing ( fixes #1493 )" until a new
...
snapshot is prepared.
2012-02-01 18:50:19 -08:00
Niko Matsakis
c36207bfb8
make boxes self-describing ( fixes #1493 )
2012-02-01 18:18:07 -08:00
Brian Anderson
4eb92d4177
rt: Don't access fields on null supervisor task
2012-02-01 16:46:11 -08:00
Brian Anderson
f76e6c39f6
rt: Fix lock_held_by_current_thread
...
This simplifies the check for thread ownership by removing the _locked flag
and just comparing against the thread ID of the last thread to take the lock.
If the running thread took the lock _holding_thread will be equal to
pthread_self(); if _holding_thread is some other value then the running thread
does not have the lock.
Setting a pthread_t to 0 like this is not portable but should work on every
platform we are likely to care about for the near future.
2012-02-01 16:06:58 -08:00
Brian Anderson
6b5f7865be
rt: Remove unused variable from lock_and_signal
2012-02-01 16:06:21 -08:00
Brian Anderson
f954ce5ef1
rt: Remove calls to signal the kernel lock
...
Nobody ever waits for it
2012-02-01 16:05:17 -08:00
Brian Anderson
5c89938544
rt: Remove rust_timer. Unused
2012-02-01 16:05:17 -08:00
Brian Anderson
fa13fd9d64
rt: Remove set_min_stack
2012-01-29 21:27:37 -08:00
Brian Anderson
6548cdd59b
rt: Make the initial segment of the main task's stack 1MB
...
This is a trick to fool microbenchmarks. Closes #1681
2012-01-29 21:20:39 -08:00
Brian Anderson
fc5ec630d4
rt: Remove unused variable
2012-01-27 18:45:43 -08:00
Donovan Preston
3d76922f97
Implement timers.
2012-01-27 14:04:13 -08:00
Donovan Preston
9e39219d9b
Shuffle around to work with rust-spidermonkey
2012-01-26 16:01:26 -08:00
Brian Anderson
ab223e0618
Merge pull request #1627 from graydon/win32-quoting
...
Fix win32 command-line quoting on rust_run_program.
2012-01-25 14:33:10 -08:00
Jyun-Yan You
c2bf9b7726
freebsd clang support
2012-01-24 11:48:36 -08:00
Graydon Hoare
7da3733c73
Fix win32 command-line quoting on rust_run_program.
2012-01-23 18:37:26 -08:00
Brian Anderson
07f8555b3e
std: Add some hacks to use libuv
2012-01-22 20:06:58 -08:00
Niko Matsakis
cac46eac4b
revert accidental commits
2012-01-20 09:34:15 -08:00
Niko Matsakis
b7811e613d
small fixes for building dist on windows
2012-01-20 08:59:07 -08:00
Niko Matsakis
7bc2930cfa
roll back commit 1c7a62
2012-01-17 20:21:09 -08:00
Niko Matsakis
a83ad1b9e6
encode variant names and have log print them out.
2012-01-17 10:33:28 -08:00
Marijn Haverbeke
1c7a62c93b
Use a memset upcall to zero things without static alignment
...
This fixes issues #843 and #1546 . The cost of an upcall is
unfortunate, though. I assume there must be a way to simply manually
compute the pointer or size, using something akin to the formula in
`align_to` in `rust_util.h`. I could not get this to work,
unfortunately.
2012-01-17 14:04:55 +01:00