Juan Jose Garcia Ripoll
|
d0abeffcdd
|
DIRECTORY does not complain about non-existent directory components
|
2012-04-06 18:04:00 +02:00 |
|
Juan Jose Garcia Ripoll
|
56d53420a9
|
In external-process-wait, spin to ensure that a structure was already updated by the concurrent thread.
|
2012-04-06 12:37:29 +02:00 |
|
Juan Jose Garcia Ripoll
|
d771c29fcf
|
MP:PROCESS-JOIN now works with an exit barrier that is set up for each process.
|
2012-04-06 12:08:47 +02:00 |
|
Juan Jose Garcia Ripoll
|
d161ac43f9
|
wakeup_one() did not use the spinlocks and had some additional implementation errors.
|
2012-04-06 12:08:47 +02:00 |
|
Juan Jose Garcia Ripoll
|
9ee80d0396
|
Sometimes the environment of a process might be NULL -- in that case, avoid marking.
|
2012-04-06 11:47:58 +02:00 |
|
Juan Jose Garcia Ripoll
|
42459677a0
|
mp:barrier-wait was missing the condition for disabled barriers
|
2012-04-06 11:24:27 +02:00 |
|
Juan Jose Garcia Ripoll
|
a5eb54dd27
|
Implemented mp:barrier and fixed unixsys.d to use spinlocks and not real locks.
|
2012-04-06 00:18:29 +02:00 |
|
Juan Jose Garcia Ripoll
|
7d97d8c817
|
Define ecl_process_yield()
|
2012-04-05 10:24:53 +02:00 |
|
Juan Jose Garcia Ripoll
|
44fbe27453
|
List new thread files in emacs.el
|
2012-04-05 01:11:03 +02:00 |
|
Juan Jose Garcia Ripoll
|
0221323a84
|
Change special handling of interrupt signal in asynchronous_signal_servicing_thread()
|
2012-04-05 01:11:03 +02:00 |
|
Juan Jose Garcia Ripoll
|
e192df6069
|
Fixed order of arguments to pthread_sigmask()
|
2012-04-05 01:08:39 +02:00 |
|
Juanjo Garcia-Ripoll
|
1683fe140d
|
Removed wrong comment
|
2012-04-02 17:28:33 +02:00 |
|
Juanjo Garcia-Ripoll
|
0fecb887e0
|
Implemented semaphores using atomic operations
|
2012-04-02 17:12:50 +02:00 |
|
Juan Jose Garcia Ripoll
|
e607b5c7f8
|
Fixed a typo in queue.d
|
2012-04-01 12:32:44 +02:00 |
|
Juan Jose Garcia Ripoll
|
b45695b642
|
Remove change that slipped from previous debugging sessions.
|
2012-03-31 11:30:06 +02:00 |
|
Juan Jose Garcia Ripoll
|
1de1d7e428
|
ecl_wait_on() takes the environment as an argument
|
2012-03-31 11:25:56 +02:00 |
|
Juan Jose Garcia Ripoll
|
667362a485
|
mp_get_lock_wait() checks the type of the lock before dereferencing a field.
|
2012-03-31 11:22:23 +02:00 |
|
Juan Jose Garcia Ripoll
|
e278e1d5a7
|
When the lock is interrupted, we have to ensure that some thread is woken up.
|
2012-03-31 11:17:27 +02:00 |
|
Juan Jose Garcia Ripoll
|
108dffc08e
|
Moved some comments
|
2012-03-31 11:17:08 +02:00 |
|
Juan Jose Garcia Ripoll
|
57b24d5807
|
The main process was not marked as ctive.
|
2012-03-31 11:16:10 +02:00 |
|
Juan Jose Garcia Ripoll
|
008a260e1f
|
In ecl_wait_on(), take care of the situation in which we abort waiting but do not care to acquire the lock: the other waiters must then be awoken.
|
2012-03-31 10:54:01 +02:00 |
|
Juan Jose Garcia Ripoll
|
e614f54a10
|
Resucitate the ecl_wait_on() implementation based on nanosleep().
|
2012-03-29 22:45:58 +02:00 |
|
Juan Jose Garcia Ripoll
|
a5d1a4fdad
|
Only block the process communication thread
|
2012-03-29 22:25:28 +02:00 |
|
Juan Jose Garcia Ripoll
|
1a9789f271
|
Directly access the option values array and only block the process interrupt in ecl_wait_on().
|
2012-03-29 22:11:29 +02:00 |
|
Juan Jose Garcia Ripoll
|
c4023263f0
|
Fixed small typo.
|
2012-03-29 20:25:28 +02:00 |
|
Juan Jose Garcia Ripoll
|
0b013aeaa4
|
Remove install_process_interupt_handler(), which is after all a synchronous signal handler
|
2012-03-29 20:23:14 +02:00 |
|
Juan Jose Garcia Ripoll
|
2d0f9bd1ed
|
Split the process interrupt handler from others, to speed it up a bit.
|
2012-03-29 20:15:05 +02:00 |
|
Juan Jose Garcia Ripoll
|
616bcfcf0c
|
Move the definition of sched_yield() up for scope reasons.
|
2012-03-29 19:34:12 +02:00 |
|
Juan Jose Garcia Ripoll
|
fc62d7927f
|
Eliminated all of the remnants from the ecl_atomic_queue interface
|
2012-03-29 18:57:31 +02:00 |
|
Juan Jose Garcia Ripoll
|
a0252e9509
|
Remove debug statement
|
2012-03-29 18:51:08 +02:00 |
|
Juan Jose Garcia Ripoll
|
328ac68f83
|
No need to create an extra cons for the wait queue
|
2012-03-29 18:50:58 +02:00 |
|
Juan Jose Garcia Ripoll
|
72fb2b575c
|
Use the spinlock in the queue object and not in the cons
|
2012-03-29 18:33:58 +02:00 |
|
Juan Jose Garcia Ripoll
|
47b906b18f
|
Do not pass the wait queue cons object around
|
2012-03-29 18:18:38 +02:00 |
|
Juan Jose Garcia Ripoll
|
5b1007c787
|
Change field names and introduce the spinlock in the lock structure
|
2012-03-29 17:43:27 +02:00 |
|
Juan Jose Garcia Ripoll
|
658d1c53ab
|
Removed unused code and refactored all the queue code into queueu.d
|
2012-03-29 17:37:35 +02:00 |
|
Juan Jose Garcia Ripoll
|
9331ec4ac5
|
Condition variables must _always_ wake up somebody.
|
2012-03-29 16:47:55 +02:00 |
|
Juan Jose Garcia Ripoll
|
4cf99dce0b
|
Reuse the cons that is used for adding a process to a wait queue.
|
2012-03-29 15:25:59 +02:00 |
|
Juan Jose Garcia Ripoll
|
b9cebb0cf7
|
print_lock() is now more like printf(). New implementation of the queue.
|
2012-03-29 12:45:22 +02:00 |
|
Juan Jose Garcia Ripoll
|
4bbeaa8f6e
|
Handle SIGILL.
|
2012-03-29 12:43:50 +02:00 |
|
Juan Jose Garcia Ripoll
|
76de423dcd
|
Remove debug statements
|
2012-03-28 21:53:48 +02:00 |
|
Juan Jose Garcia Ripoll
|
a5661d8ad5
|
Do not try the atomic lock operation if there are processes waiting.
|
2012-03-27 22:55:02 +02:00 |
|
Juan Jose Garcia Ripoll
|
e0a8c7b568
|
Check whether sched_yield() is available.
|
2012-03-27 22:53:58 +02:00 |
|
Juan Jose Garcia Ripoll
|
9ed7234c54
|
Debug wait queue
|
2012-03-23 23:23:53 +01:00 |
|
Juan Jose Garcia Ripoll
|
ad3b5ce069
|
Export spinlocks in internal.h
|
2012-03-23 22:30:19 +01:00 |
|
Juanjo Garcia-Ripoll
|
d0e9b4cd47
|
While a thread is booting: i) signals are ignored, ii) mp_process_join() and mp_process_kill() wait.
|
2012-03-20 17:46:31 +01:00 |
|
Juan Jose Garcia Ripoll
|
cacf1be931
|
mp_process_kill() and mp_process_join() now check whether the process is alive.
|
2012-03-20 00:02:51 +01:00 |
|
Juan Jose Garcia Ripoll
|
d54cbaa749
|
ecl_check_pending_interrupts() now takes the environment as argument
To wake up a process we need not supply any function (it is faster as it saves a call to queue_signal()
|
2012-03-20 00:02:47 +01:00 |
|
Juan Jose Garcia Ripoll
|
b10c0c1acf
|
Interrupts will be discarded for exiting processes (avoids a harmful process kill signal when trying to clean up)
|
2012-03-19 23:59:58 +01:00 |
|
Juan Jose Garcia Ripoll
|
a444e8d290
|
When giving up a lock there is no need to disable interrupts.
|
2012-03-19 23:59:16 +01:00 |
|
Juan Jose Garcia Ripoll
|
445431daa4
|
Mutexes and condition variables now rely on a queue for organizing waiters.
|
2012-03-19 01:14:22 +01:00 |
|