[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with (eq? ...) and Serveez
From: |
Roland Besserer |
Subject: |
Re: Problem with (eq? ...) and Serveez |
Date: |
28 Jan 2004 09:59:10 -0800 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 |
Understood and I appreciate the details on the Serveez callback
allocation but ... I had already traversed the equal?, eqv?, eq?
path - identical results.
It appears that neither comparing for actual object equivalence
(which I incorrectly assumed would be the case) nor content
equivalence via equal? returns true. I probably should've been
clearer in my original post.
Regards
roland
Stephen Compall<address@hidden> writes:
> Roland Besserer<address@hidden> writes:
>
> > Why does eq? fail in the second case?
> > Any pointers would be welcome.
>
> Because, each time Serveez calls your callback function, it remakes
> the smob that contains the socket. It doesn't matter that the filedes
> is the same; that is a case for equal?, just as the characters in a
> string are a case for equal? not eq?.
>
> The relevant code is in guile-server.c. Each of the callbacks has a
> wrapper. Take guile_func_kicked_socket for example. It calls
> MAKE_SMOB (svz_socket, sock), which effectively calls the expansion of
> GUILE_CONCAT3(guile_,svz_socket,create), a function that calls the
> expansion of SCM_RETURN_NEWSMOB. A new smob can't be eq? to anything
> already in the system.
>
> --
> Stephen Compall or s11 or sirian
>
> understand, v.:
> To reach a point, in your investigation of some subject, at which
> you cease to examine what is really present, and operate on the
> basis of your own internal model instead.
>
> Firewalls Roswell Medco Ron Brown counter intelligence kilo class
> Noriega espionage Verisign smuggle AMEMB MD5 LABLINK SEAL Team 6 fraud
>
--
Roland Besserer
Distinguished Member of Technical Staff
Motorola Broadband Communications Sector
55 Las Colinas Lane
San Jose, CA 95119
+1 408 284 6181
+1 408 504 4178 GSM