bors
20fd0c53ed
auto merge of #4938 : thestinger/rust/no_zero, r=brson
...
I removed the unused wrappers methods named `calloc` because they relied on the malloc wrapper having a `bool zero = true` default parameter (which resulted in some accidental zeroing). Perhaps wrapping the actual calloc function would be useful, but I don't know of an existing use case that could use it so I just removed these.
This gives an ~1% performance improvement for TreeMap, which does a lot of small allocations. Vectors use `realloc` which didn't zero before these changes so there's no measurable change in performance.
2013-02-14 18:27:54 -08:00
Daniel Micay
2e0614750c
get rid of unused exchange_alloc calloc method
...
this isn't actually calloc - it calls the malloc wrapper which no
longer zeroes
2013-02-14 18:24:52 -05:00
Zack Corr
ebd20b7944
Rename dec/inc_weak_task_count to inc/dec_live_count and remove register_task/unregister_task. Closes #4768
2013-02-09 19:19:31 +10:00
Brian Anderson
e43c5bdc6b
Rewrite the exchange allocator to work without an active scheduler. #4457
2013-02-06 14:27:36 -08:00
Brian Anderson
4f6516969e
rt: Remove ports
2013-02-01 21:22:49 -08:00
Brian Anderson
cc9ab2c033
Remove old comm-based weak task interface
2013-01-23 17:35:34 -08:00
Brian Anderson
b9608fe423
std: Convert uv_global_loop to use pipes
2013-01-23 17:35:34 -08:00
Brian Anderson
fb9299346a
core: Convert getenv/setenv to use a mutex
...
This much simpler implementation uses a global mutex
and eliminates the kernel environment channel.
2013-01-23 17:35:34 -08:00
Brian Anderson
8852279a9e
core: Add new weak task API
2013-01-23 17:35:31 -08:00
Brian Anderson
db1abbec4c
core: Add private global data interface. #3915
2013-01-17 19:24:50 -08:00
Brian Anderson
ac435af73a
Add at_exit function #4450
2013-01-15 18:00:19 -08:00
Brian Anderson
090b247056
Spawn new tasks onto the primary scheduler by default. #3760
2013-01-15 18:00:19 -08:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Philipp Brüschweiler
68e755b1c2
core: Allocate threads on demand, not on scheduler startup
...
API change: rust_kernel::create_scheduler() or
rust_scheduler::rust_scheduler() respecitevly now take ownership of the
launch factory argument, it is needed to create new threads on demand.
Also renames rustrt::sched_threads() to rustrt::rust_sched_threads() for
consistency. Added rustrt::rust_max_sched_threads() to return the
maximal number of scheduled threads of the current scheduler.
Fixes #3493 .
2012-09-19 14:01:53 -07:00
Ben Blum
3dc52da989
[4/4 for #2365 , #2671 ] Reassign one last fixme to #908 . Close #2365 . Close #2671 .
2012-07-20 19:23:19 -04:00
Ben Blum
af7b769465
[3/4 for #2365 , #2671 ] Fix exit/kill race with scheds during rust_kernel::fail
2012-07-20 19:23:19 -04:00
Ben Blum
5bb4a12900
[1/4 for #2365 , #2671 ] Fix create/kill race with schedulers and tasks during rust_kernel::fail
2012-07-20 19:23:19 -04:00
Ben Blum
cd38377b1b
Add asserts to check fail_sched_loop() only once
2012-07-13 20:13:53 -04:00
Ben Blum
6fc730baf6
Cleanup failure handling around rust_new_task_in_sched - closes #2668
2012-06-28 19:02:48 -04:00
Graydon Hoare
312faf31df
Tag all remaining FIXMEs with bugs. Install rule in tidy script to enforce this.
2012-06-21 16:44:10 -07:00
Tim Chevalier
c814df0bd6
Comments only: annotate FIXMEs
2012-06-21 16:03:28 -07:00
Michael Sullivan
4c0d41cffa
Add a malloc_dyn upcall for dynamically sized allocations on the shared heap.
2012-06-13 17:59:21 -07:00
Brian Anderson
f717100fc7
rt: Start tasks, ports and scheds at 1, assert when we see 0. Closes #2321
2012-05-07 14:32:36 -07:00
Brian Anderson
46cc11ea88
core: Serialize all access to the environment using a weak global task
2012-04-30 17:34:29 -07:00
Jeff Olson
577b888e4b
rt: remove unneccesary c++ functions and rust_kernel data, re: global loop
2012-04-27 22:19:30 -07:00
Jeff Olson
253fad7788
replace impl of globa_async_handle with one using atomic compare-and-swap
2012-04-20 15:23:22 -07:00
Jeff Olson
9a5d1974dc
don't use ::malloc for initializing the global_async_handle in rust_kernel
2012-04-20 15:23:22 -07:00
Jeff Olson
e0f110aa12
clean and trying the global loop test as two separate loop lifetimes..
...
.. seeing an occasional valgrind/barf spew on some invalid read/writes..
need to investigate further.. i think its related to my poor citizen
conduct, re: pointers stashed in rust_kernel..
2012-04-20 15:23:22 -07:00
Jeff Olson
c6667c06c3
add needed fields for global libuv loop + bindings to manage from rust
...
adding two pointers fields to rust_kernel :(
.. have to do manual malloc/free for one of the fields, which feels wrong
2012-04-20 15:23:21 -07:00
Brian Anderson
53f5c0c623
rt: Delete some incorrect comments
2012-04-20 14:00:13 -07:00
Brian Anderson
4357e1fd60
rt: Take the weak_task_lock in end_weak_tasks
...
Don't remember why it's commented out. Probably an oversight.
2012-04-20 13:59:31 -07:00
Brian Anderson
01dc4a8b26
core: Add priv::weaken_task
2012-04-07 19:56:41 -07:00
Brian Anderson
e325146eb4
Merge remote-tracking branch 'brson/mainthread'
...
Conflicts:
src/rt/rust_kernel.cpp
src/rt/rust_scheduler.cpp
src/rt/rust_scheduler.h
2012-04-03 20:30:01 -07:00
Brian Anderson
4cf7efc8f7
rt: Fix bugs in the osmain scheduler
2012-04-03 20:24:29 -07:00
Brian Anderson
c0e12854ed
rt: Fix bugs in the osmain scheduler
2012-04-03 18:01:13 -07:00
Brian Anderson
4f4b7b10bb
rt: Futz with headers to satisfy FreeBSD
2012-04-03 16:02:38 -07:00
Jon Morton
72ffb4b446
fix 'I don't know how C works'
2012-04-03 16:02:38 -07:00
Jon Morton
632a4c9326
Refactor includes structure, getting rid of rust_internal.h
...
Many changes to code structure are included:
- removed TIME_SLICE_IN_MS
- removed sychronized_indexed_list
- removed region_owned
- kernel_owned move to kernel.h, task_owned moved to task.h
- global configs moved to rust_globals.h
- changed #pragma once to standard guard in rust_upcall.h
- got rid of memory.h
2012-04-03 16:02:38 -07:00
Brian Anderson
e1858882a4
rt: Run a single-threaded scheduler on the main thread
2012-04-02 15:35:47 -07:00
Jon Morton
bcb9269d84
rt: cleanup passing around of rust_env
2012-04-02 03:11:58 -05:00
Jon Morton
128a8b6ed5
remove rust_srv
2012-04-01 22:18:40 -05:00
Jon Morton
413994ea3e
replace assertion macros with plain asserts
2012-04-01 21:14:16 -05:00
Brian Anderson
fb528dd7d6
rt: Allow some schedulers to stay alive even without tasks to execute
2012-04-01 16:57:14 -07:00
Brian Anderson
e78396850d
Merge remote-tracking branch 'brson/mainthread'
...
Conflicts:
src/rt/rust_sched_loop.cpp
src/rt/rust_shape.cpp
src/rt/rust_task.cpp
2012-04-01 00:15:04 -07:00
Brian Anderson
21064637ed
rt: Fix whitespace
2012-03-31 23:12:06 -07:00
Brian Anderson
218dd08469
rt: Introduce rust_sched_reaper
...
This just moves the responsibility for joining with scheduler threads
off to a worker thread. This will be needed when we allow tasks to be
scheduled on the main thread.
2012-03-31 19:51:29 -07:00
Graydon Hoare
2aaca455b9
Tidy up multiple declarations and STDC_FOO_MACROS guards in headers.
2012-03-28 14:26:51 -07:00
Graydon Hoare
c141e7a068
Fix some gcc-4.4-isms, should build now on 4.1+.
2012-03-28 13:52:47 -07:00
Brian Anderson
b247de6458
rt: Remove lock_held_by_current_thread
2012-03-18 17:03:35 -07:00
Brian Anderson
c414b78afe
rt: Remove the kernel task table
2012-03-15 11:10:52 -07:00