Denis Martinez
2b8bfc2825
fix a minor typo
2015-09-07 15:27:06 +02:00
Daniel Kochmański
0d25eccfb8
regression: add back removed interfaces
...
Adds back ecl_import_current_thread and ecl_release_current_thread.
Closes #8 .
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-09-04 21:29:08 +02:00
Matthew Mondor
8f07cd58d8
The ECL code no longer uses tabulator characters, they were replaced
...
by spaces.
A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
2015-09-03 07:35:47 -04:00
Daniel Kochmański
2f869e6eb6
windows: when using msvc, don't handle interrupts
...
Installed spawning process was broken and unimportant. ECL ignores C-c
interrupt and passes forward all the others when build with
msvc. Fixes #8 .
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-21 19:43:27 +02:00
Daniel Kochmański
4d19a27424
cosmetic: untabify
...
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-06-21 14:38:20 +02:00
Juan Jose Garcia Ripoll
94b37a8ab6
Missing use of ECL_NO_TL_BINDING in process.d
2013-05-24 21:33:06 +02:00
Juan Jose Garcia Ripoll
c5d7b4c960
The value of *CURRENT-PROCESS* must be bound by ecl_import_current_thread().
2012-11-09 22:20:01 +01:00
Juan Jose Garcia Ripoll
e6038ce113
Use the garbage collector routines to get the stack base in a more accurate way
2012-10-31 20:50:30 +01:00
Juan Jose Garcia Ripoll
42f0b2eaa5
Fixed problems in ecl_register_current_thread(). First, allocation of environment and process structures could not proceed when ecl_process_env() did not return a valid environment. Second, we can only call GC_unregister_my_thread() when the thread was not created by the garbage collector itself, for which we must inspect the output of GC_register_my_thread()
2012-09-27 23:06:56 +02:00
Juan Jose Garcia Ripoll
14d2960135
Use a spinlock for a thread wait until its process structure is completed by its parent. Rename waiting_for to woken_up for the real application it has.
2012-07-30 22:11:50 +02:00
Juan Jose Garcia Ripoll
52f6efc2a0
Fixed typo in process.d
2012-07-22 22:12:57 +02:00
Juan Jose Garcia Ripoll
e54d9a6173
Rename type_of -> ecl_t_of
2012-07-05 23:07:34 +02:00
Juanjo Garcia-Ripoll
9d4a68897a
Fixed typo in process.d
2012-07-03 11:18:45 +02:00
Juan Jose Garcia Ripoll
e1fb39a49b
Changed the name of the macro ECL_RESTARTS_TRY to ECL_RESTART_CASE
2012-07-02 23:21:34 +02:00
Juan Jose Garcia Ripoll
84a3200a02
Implemented a simple variant of RESTART-CASE in C. Used it to bind the restart ABORT on every thread. Introduced the function ecl_setq()
2012-07-02 22:49:27 +02:00
Juan Jose Garcia Ripoll
825fc8cbd3
Cnil and Ct are now part of legacy
2012-06-30 23:01:40 +02:00
Juan Jose Garcia-Ripoll
efadef99dc
Prefix the block creation macros, ECL_BLOCK_*, etc
2012-06-30 12:01:44 +02:00
Juan Jose Garcia-Ripoll
05a16801ca
Rename cl_va_* macros to ecl_va_*
2012-06-24 20:46:55 +02:00
Juan Jose Garcia Ripoll
52512c15a4
Rename the stp_* and aet_* enumeration names with the ecl_ prefix
2012-06-08 00:12:48 +02:00
Juan Jose Garcia Ripoll
64a9168434
CHARACTERP, BASE_CHAR_P, BASE_CHAR_CODE_P, CODE_CHAR, CHAR_CODE, REAL_TYPE, IMMEDIATE, IMMEDIATE_TAG, FIXNUM_TAG, FIXNUM_MINUSP, FIXNUM_PLUSP, FIXNUMP and fix get the ecl_ prefix
2012-06-06 11:19:55 +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
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
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
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
3980ea5d66
Removed the process.active field and instead used 'process.phase'. Added some debug statements. Threads are launched also with POSIX signals disabled (at least ECL's signal).
2012-04-06 18:07:58 +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
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
57b24d5807
The main process was not marked as ctive.
2012-03-31 11:16:10 +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
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
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
607ecaea2a
The list of processes now has a fill pointer
2012-03-17 19:35:07 +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
d5296f2563
Implement mutexes using CAS. Deactivate condition variables temporarily.
2012-02-12 23:31:29 +01:00
Juan Jose Garcia Ripoll
bc7be9bb98
Improved EXT:CATCH-SIGNAL to handle not running processes, threads and better use of sigprocmask.
2011-08-06 22:47:39 +02:00
Juan Jose Garcia Ripoll
e6bb812e38
Protect the GET/SET-SYSPROP hash using the same global lock as packages, which is now called cl_core.global_env read/write-lock
2011-07-31 17:03:24 +02:00
Juan Jose Garcia Ripoll
4f1da6d6f6
Fix package prefix (si->ext) in Windows' threading code (src/c/threads/process.d)
2011-05-22 23:35:07 +02:00
Juan Jose Garcia Ripoll
a7000ca0f9
Reimplementation of the SIGCHLD handler -- avoids race conditions using the signal handling thread.
2011-03-13 21:59:36 +01:00
Juan Jose Garcia Ripoll
1523ae8a5c
EXT package created containing the original set of symbols (not yet filtered) and re-exported from SYS
2011-02-27 23:20:12 +01:00
Juan Jose Garcia Ripoll
7923040233
Fixed typo in symbol name.
2011-02-02 23:23:30 +01:00
Juan Jose Garcia Ripoll
19afa14a12
The list of symbols in cl_symbols is independent of the features linked in (except for CLOS)
2011-01-30 18:12:41 +01:00
Juan Jose Garcia Ripoll
a86bbd3605
Fixed various warnings to allow compiling ECL with CLang
2011-01-23 16:06:47 +01:00
Juan Jose Garcia Ripoll
0c090e2a38
Remove return statements without a value.
2011-01-23 12:35:45 +01:00