1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-02 23:50:47 +02:00

Convert mutexes, condition vars to statically-allocated tc16

* libguile/scm.h: Add statically allocated tc16s for condvars and
mutexes.
* libguile/threads.c: Adapt to declare tag inline to struct scm_cond and
struct scm_mutex.
* libguile/threads.h: Expose printing procedures internally.
* module/oop/goops.scm:
* libguile/goops.c: Fix to statically allocate condition variable and
mutex classes.
* libguile/eq.c:
* libguile/print.c: Adapt.
This commit is contained in:
Andy Wingo 2025-06-13 11:45:55 +02:00
parent 7a1406891f
commit f47fe6e752
7 changed files with 114 additions and 67 deletions

View file

@ -509,6 +509,19 @@ typedef uintptr_t scm_t_bits;
/* Objects with scm_tc7_ext. */
#define scm_tc16_charset 0x007f
#define scm_tc16_condition_variable 0x017f
#define scm_tc16_mutex 0x027f
/*
#define scm_tc16_continuation 0x067f
#define scm_tc16_directory 0x077f
#define scm_tc16_hook 0x097f
#define scm_tc16_macro 0x0a7f
#define scm_tc16_malloc 0x0b7f
#define scm_tc16_port_with_print_state 0x0d7f
#define scm_tc16_promise 0x0e7f
#define scm_tc16_random_state 0x0f7f
#define scm_tc16_regexp 0x107f
*/
/* Definitions for tc16: */
#define SCM_TYP16(x) (0xffff & SCM_CELL_TYPE (x))