Daniel Kochmański
11e35ea5b9
windows: gc: remove spurious define
...
Older bdwgc didn't export that symbol, so ECL patched that definition
for its own threaded needs. bdwgc has improved since then and our own
definition breaks CC builds. Fixes #288 .
See https://gitlab.com/embeddable-common-lisp/ecl/issues/288
2016-09-16 11:03:44 +02:00
Fabrizio Fabbri
1e5e86c1d2
Fix on several minor issue on thread.
...
- fix #262 to manage CTRL+c on Win.
- unregistered thread are left registered and enviroment not cleanup.
- manage when a finalizer is invoked before a valid enviroment is available.
2016-08-23 15:28:23 -04:00
Walter Genovese
67b2000ac6
MSVC fix ecl_import_current_thread
...
* Do not close thread handler until the thread is unregistered otherwise
the thread wakeup using QueueUserAPC will not work.
2016-05-12 13:09:53 -04:00
Fabrizio Fabbri
ca2a0c91e6
Fix import thread
2016-05-12 13:09:52 -04:00
Daniel Kochmański
5e8ec11bdd
cosmetic: fix indent (rest of C)
2016-05-06 08:41:52 +02:00
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