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 |
|
Juan Jose Garcia Ripoll
|
a98208d1ea
|
Fixed identification of inactive processes in unixint.d
|
2012-03-19 01:13:58 +01:00 |
|
Juan Jose Garcia Ripoll
|
bc738ccae8
|
The lock.waiter field was not marked during GC
|
2012-03-19 00:59:51 +01:00 |
|
Juan Jose Garcia Ripoll
|
6719519516
|
Simplified the function that creates the bytecodes compiler environment
|
2012-03-18 20:19:47 +01:00 |
|
Juan Jose Garcia Ripoll
|
af9808d5d9
|
Save the value of the code walker in the compiler environment
|
2012-03-18 20:03:30 +01:00 |
|
Juan Jose Garcia Ripoll
|
83b38deac6
|
In list_directory() the text mask is now a lisp object
|
2012-03-18 17:21:00 +01:00 |
|
Juan Jose Garcia Ripoll
|
f074dd441f
|
When a directory component is not a wild string, nor a wild keyword, ECL no longer tries to list the directory.
|
2012-03-18 16:54:10 +01:00 |
|
Juan Jose Garcia Ripoll
|
f37055af48
|
New function to detect wild pathname components.
|
2012-03-18 16:53:44 +01:00 |
|
Juan Jose Garcia Ripoll
|
a85ee4d210
|
When in Unicode, ensure that the output string is always of the desired format, which defaults to :UTF8 for compiled files.
|
2012-03-18 16:24:46 +01:00 |
|
Juan Jose Garcia Ripoll
|
e48229c81a
|
After -shell, stop processing any further arguments.
|
2012-03-18 16:24:46 +01:00 |
|
Juan Jose Garcia Ripoll
|
a9878638c1
|
MSVC admits 64 bit integers also in 32 bit mode.
|
2012-03-18 15:43:27 +01:00 |
|
Juan Jose Garcia Ripoll
|
8a91265468
|
ECL was not using 'inline' functions when GCC switched to C99 (A. Hefner)
|
2012-03-18 15:42:11 +01:00 |
|
Juan Jose Garcia Ripoll
|
50cb6b5e07
|
The condition function in ecl_wait_on() now takes an environment argument.
|
2012-03-18 13:29:49 +01:00 |
|
Juan Jose Garcia Ripoll
|
1ff7d7e4c2
|
In process.d, handling of the process vector includes compacting it and using a global lock for all tasks.
|
2012-03-18 13:29:21 +01:00 |
|
Juan Jose Garcia Ripoll
|
f36b002a5f
|
Slight optimization of the function that searches closure boundaries in CLOS
|
2012-03-18 13:24:35 +01:00 |
|
Juan Jose Garcia Ripoll
|
2d713f26f4
|
An overoptimization when compiling variables lead to some function boundaries not being registered
|
2012-03-18 13:24:18 +01:00 |
|
Juan Jose Garcia Ripoll
|
f8f67f0fbf
|
Update list of files for Emacs
|
2012-03-18 01:19:42 +01:00 |
|
Juan Jose Garcia Ripoll
|
141b2f909b
|
Implemented a first version of userspace condition variables.
|
2012-03-17 20:56:58 +01:00 |
|
Juan Jose Garcia Ripoll
|
15ffd896a9
|
In ecl_wait_on() added a fast path using spinlocks and a slow path using unwind-protect.
|
2012-03-17 19:37:52 +01:00 |
|
Juan Jose Garcia Ripoll
|
ac497876f3
|
The mutex only tries to wake one process
|
2012-03-17 19:37:13 +01:00 |
|
Juan Jose Garcia Ripoll
|
9ac615eca6
|
Removed debug statement
|
2012-03-17 19:35:47 +01:00 |
|
Juan Jose Garcia Ripoll
|
0782f9a2fb
|
ecl_musleep() no longer disables interrupts.
|
2012-03-17 19:35:33 +01:00 |
|
Juan Jose Garcia Ripoll
|
607ecaea2a
|
The list of processes now has a fill pointer
|
2012-03-17 19:35:07 +01:00 |
|
Juan Jose Garcia Ripoll
|
fad8ebefae
|
Fixed unbalanced parenthesis in alloc_2.d
|
2012-03-17 19:34:48 +01:00 |
|
Juan Jose Garcia Ripoll
|
d5bfaa2e9c
|
The CLOS cache no longer uses a global lock
|
2012-02-19 23:12:53 +01:00 |
|
Juan Jose Garcia Ripoll
|
de42c0c0fb
|
Added ecl_atomic_get() which extracts the value of a field and replaces it with NIL
|
2012-02-19 23:12:29 +01:00 |
|
Juan Jose Garcia Ripoll
|
67002663ae
|
Creation/destruction of global variable identifiers does not require a lock.
|
2012-02-19 22:56:10 +01:00 |
|
Juan Jose Garcia Ripoll
|
3874f89eb7
|
Separate file for atomic operations
|
2012-02-19 22:55:46 +01:00 |
|
Juan Jose Garcia Ripoll
|
917ea9f3b0
|
ecl_interrupt_process() now accepts also NIL as an argument, implying that we only want to wake up the process.
|
2012-02-19 22:17:25 +01:00 |
|
Juan Jose Garcia Ripoll
|
ce73d0a60a
|
Implemented a wait queue for locks and other events.
|
2012-02-19 01:23:06 +01:00 |
|
Juan Jose Garcia Ripoll
|
632f584598
|
Got rid of the signal_queue_lock in cl_core, replacing it with atomic operations.
|
2012-02-19 01:23:06 +01:00 |
|
Juan Jose Garcia Ripoll
|
28b007b0d9
|
In do_interrupt_process(), the queue lock was held.
|
2012-02-19 00:55:53 +01:00 |
|
Juan Jose Garcia Ripoll
|
9707940125
|
The process list is now an array
|
2012-02-18 20:16:06 +01:00 |
|
Juan Jose Garcia Ripoll
|
0e1d0226b2
|
Explicitly mark the current thread environment, just in case it was not properly installed in cl_core.processes (this happens when registering external threads).
|
2012-02-18 10:48:48 +01:00 |
|
Juan Jose Garcia Ripoll
|
14c352593b
|
Implemented an interruptible version of musleep() also for Windows.
|
2012-02-18 10:48:47 +01:00 |
|
Juanjo Garcia-Ripoll
|
08d461f564
|
When using nanosleep() wait only for the time that is remaining.
|
2012-02-17 14:36:36 +01:00 |
|
Juan Jose Garcia Ripoll
|
70b3b2635e
|
Remove implicit type declarations in DEFMETHOD because the arguments to the function may be changed by the body itself.
|
2012-02-16 23:23:15 +01:00 |
|
Juan Jose Garcia Ripoll
|
1628fe2781
|
In ecl_read_object_with_delimiter fixed arguments for error message (red plait).
|
2012-02-16 21:59:45 +01:00 |
|
Juan Jose Garcia Ripoll
|
cd65c21270
|
Slight optimization of unlikely error conditions in mutex.d
|
2012-02-13 22:26:52 +01:00 |
|