Commit graph

2230 commits

Author SHA1 Message Date
Juanjo Garcia-Ripoll
47bc44daa0 In EXT:RUN-PROGRAM, synchronize the child so that it waits until the parent has set up the process structure. 2012-04-26 16:16:05 +02:00
Juanjo Garcia-Ripoll
1fc8af38ba New class METHOD-COMBINATION used in combin.lsp 2012-04-26 10:09:34 +02:00
Juan Jose Garcia Ripoll
b66c3736f3 Avoid infinite loop in cinit.d (si_safe_eval) 2012-04-25 23:39:12 +02:00
Juan Jose Garcia Ripoll
abb677f039 class-of did not work with barriers, mailboxes and semaphores 2012-04-25 23:13:55 +02:00
Juan Jose Garcia Ripoll
5e9b643f57 ECL's discriminating function protocol now relies on COMPUTE-APPLICABLE-METHODS-USING-CLASSES 2012-04-24 23:23:05 +02:00
Juan Jose Garcia Ripoll
a2460f3a4b EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented. 2012-04-22 02:03:46 +02:00
Juan Jose Garcia Ripoll
ec6553ce88 COMPUTE-APPLICABLE-METHODS and CLOS:COMPUTE-EFFECTIVE-METHOD are now generic functions 2012-04-21 09:12:45 +02:00
Juan Jose Garcia Ripoll
7f8ac13aa2 :CDECL was not accepted as an FFI declaration due to a typo. 2012-04-19 21:35:54 +02:00
Juan Jose Garcia Ripoll
fb9c491a4f In atomic.d, include ecl_atomics.h only when needed. 2012-04-19 21:15:32 +02:00
Juanjo Garcia-Ripoll
57cd6e3066 Minor changes to add the new MP objects to the MSVC port and new code for waking up processes in this platform. 2012-04-16 23:35:40 +02:00
Juan Jose Garcia Ripoll
d93cefad6e Thanks to the chained wakeup event, ecl_wakeup_waiters() does no longer need an extra argument 2012-04-15 23:22:22 +02:00
Juan Jose Garcia Ripoll
d6f806af2c Update description of ecl_wait_on(). 2012-04-15 23:08:56 +02:00
Juan Jose Garcia Ripoll
323822457c In the queue, when the first process of the queue leaves it, it awakes the next one in line to test its condition. 2012-04-15 22:48:33 +02:00
Juan Jose Garcia Ripoll
0ce91a565d The mailbox did not set its mask properly 2012-04-15 20:39:09 +02:00
Juan Jose Garcia Ripoll
a20b8b9218 ecl_wakeup_waiters now take an argument with the number of processes to awake 2012-04-15 11:09:42 +02:00
Juan Jose Garcia Ripoll
d9f88afa1e The value of C_ARGUMENTS_LIMIT was not well precised 2012-04-14 20:36:03 +02:00
Juan Jose Garcia Ripoll
ac518d8e33 MAKE-PATHNAME should not simplify :BACK in the directory part. 2012-04-14 19:30:12 +02:00
Juan Jose Garcia Ripoll
2b182d345f When fixing the value of a #n# form, do_patch_sharp() could lead to infinite recursion. 2012-04-14 19:05:45 +02:00
Juan Jose Garcia Ripoll
94c86a0af1 Simplified ecl_wait_on(): optimized detection of being first one and abortion, waking up is done with the lock held, woken up threads are not removed from queue. 2012-04-14 11:43:39 +02:00
Juan Jose Garcia Ripoll
e06d7c7c30 Increased safety area for the BDS binding stack 2012-04-14 11:42:26 +02:00
Juanjo Garcia-Ripoll
d9e4311d95 Remove explicit use of ecl_get_spinlock() in unixsys.d, replacing with ECL_WITH_SPINLOCK, which also works in single-thread mode. 2012-04-13 11:08:54 +02:00
Juanjo Garcia-Ripoll
eb1fd2c0cf Removed debug statement 2012-04-13 11:06:52 +02:00
Juan Jose Garcia Ripoll
e1c1fbe5aa FElibc_error/FEwin32_error now explain that what the user is seeing is a core library message 2012-04-13 01:10:13 +02:00
Juan Jose Garcia Ripoll
441b57d3f5 Avoid calling ecl_char() in mkdir 2012-04-13 01:02:38 +02:00
Juan Jose Garcia Ripoll
6355c80700 EXT:MKDIR no longer accepts pathnames, just strings. 2012-04-13 00:45:33 +02:00
Juan Jose Garcia Ripoll
51ca6d006e Simplify ecl_wakeup_waiters() 2012-04-12 23:59:34 +02:00
Juan Jose Garcia Ripoll
e3a426896f The process list is now protected by a spinlock 2012-04-12 23:59:20 +02:00
Juan Jose Garcia Ripoll
fbd3587b1a Removed further warnings about uninitialized or unused variables and functions 2012-04-11 23:04:27 +02:00
Juan Jose Garcia Ripoll
a7eead6ba7 Slight optimizations in VALUES and MULTIPLE-VALUE-LIST 2012-04-11 23:04:07 +02:00
Juan Jose Garcia Ripoll
3bbba10703 Block interrupts when exiting the thread. 2012-04-11 22:03:25 +02:00
Juan Jose Garcia Ripoll
036cb55928 Fixes to remove warnings about unused variables. Replaced some uses of @(return) with ecl_return*() 2012-04-10 23:20:40 +02:00
Juan Jose Garcia Ripoll
5c1dca4c67 Fixed another sign problem when handling the output of fread(). 2012-04-10 21:03:33 +02:00
Juan Jose Garcia Ripoll
4c4b58c5cf Fixed various type warnings issued by Clang 2012-04-09 22:31:09 +02:00
Juan Jose Garcia Ripoll
880259cb55 The signal queue is now local to a thread and is protected with a spinlock. 2012-04-08 22:37:22 +02:00
Juan Jose Garcia Ripoll
1472cc91ef Removed the code for alternative stacks 2012-04-08 20:29:41 +02:00
Juan Jose Garcia Ripoll
2425a9ebb9 process_interrupt_handler() now handles _all_ queued signals, instead of just one. 2012-04-08 17:18:38 +02:00
Juan Jose Garcia Ripoll
1f89d8620c SIGSEGV and SIGBUS share signal handler 2012-04-08 16:57:22 +02:00
Juan Jose Garcia Ripoll
840f041179 Avoid nested SIGSEGV/BUS interrupts, aborting immediately when it happens 2012-04-08 16:33:23 +02:00
Juan Jose Garcia Ripoll
8d1c35daeb ecl_unrecoverable_error() verifies that some frame was established before jumping to it. 2012-04-08 16:17:50 +02:00
Juan Jose Garcia Ripoll
9825171f42 Only deliver signals to active processes. 2012-04-08 16:12:11 +02:00
Juan Jose Garcia Ripoll
d33fa59ee4 Immediately register the process with the env it forms part of. 2012-04-08 15:19:06 +02:00
Juan Jose Garcia Ripoll
f03bb29cd9 Ensure that a process is listed when its environment is created, so that this environment is marked. 2012-04-08 12:29:34 +02:00
Juan Jose Garcia Ripoll
cd02c2a0f4 Totally block signals until a thread is completely set up. 2012-04-08 00:24:36 +02:00
Juan Jose Garcia Ripoll
8810352ceb Fixed wrong initialization error in process.d 2012-04-07 19:32:09 +02:00
Juan Jose Garcia Ripoll
748eb30ebe mp:mailbox-empty-p returned the opposite value. 2012-04-07 01:07:02 +02:00
Juan Jose Garcia Ripoll
ad49125681 Implemented a first prototype of mailbox 2012-04-07 00:55:14 +02:00
Juan Jose Garcia Ripoll
c123b66245 ecl_wait_on() returns the value of the tester. 2012-04-06 23:51:00 +02:00
Juan Jose Garcia Ripoll
c31ac36f91 get_semaphore_inner() must try to repeat decrementing the semaphore if CAS failed. 2012-04-06 23:17:43 +02:00
Juan Jose Garcia Ripoll
7643157118 Replace a @(return) with an ecl_return1() 2012-04-06 23:12:23 +02:00
Juan Jose Garcia Ripoll
defc12c1bc The waiter for a barrier must check both that it was signaled and that the barrier is enabled. 2012-04-06 23:07:22 +02:00