[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dev-serveez] GC issue

From: stefan
Subject: [dev-serveez] GC issue
Date: Thu, 18 Oct 2001 16:36:19 +0200 (CEST)

Hello Martin,
  I got yet another Guile question :-)
Some of the SMOBs used for the Guile servers in Serveez are of temporary
nature. Server instances <svz-server>, sockets <svz-socket> an binary
SMOBS <svz-binary> are protected from GC where needed by an appropiate
marker function now.
  But two things are still left: When assigning callbacks within
(define-servertype!) to a <svz-servertype> these are protected from GC
when using <svz-socket> and <svz-server> by getting the parent of them.
This concept does not work if there are more than a single Guile server
and you run (gc) in one of them since there is no SMOB containing a
reference to the others at this time.
  It is the same with the (svz:sock:data) thingy. It might happen that
there is currently no <svz-socket> at (gc) time when having more than a
single connection.
  This is all because all of these SMOBs are just temopary. My question
now: How can we portably (>= Guile 1.3.x) protect some Guile data from GC
? I know there different concepts (like permanent objects and root sets),
but I am not sure which to take and what are the advantages /
disadvantages of each.

Thanks in advance,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]