メッセージ。 -

#

実験してみたのですが、

(begin
  (use gauche.net)
  (let1 ssocket (make-server-socket 'inet 8082)
    (let loop ((csocket (socket-accept ssocket)))
      (socket-close csocket)
      (loop (socket-accept ssocket)))))

ではメモリ使用量が増えず、

(begin
  (use gauche.net)
  (let1 ssocket (make-server-socket 'inet 8082)
    (let loop ((csocket (socket-accept ssocket)))
      (socket-output-port csocket)
      (socket-close csocket)
      (loop (socket-accept ssocket)))))

ではメモリ使用量が増えました。

その場しのぎですが、手元の環境では以下のパッチが効きました。

 --- ext/net/net.c.orig  2005-10-13 17:14:13.000000000 +0900
 +++ ext/net/net.c       2006-03-28 17:33:57.000000000 +0900
@@ -135,6 +135,8 @@
     closeSocket(s->fd);
     s->fd = INVALID_SOCKET;
     s->status = SCM_SOCKET_STATUS_CLOSED;
+    s->inPort = NULL;
+    s->outPort = NULL;
     return SCM_TRUE;
 }
 
2006-03-28 17:44:55 / hirofummy / Comment: 0 / Trackback: 0

Comment

コメント投稿機能は無効化されています。

Trackback

TrackBack投稿機能は無効化されています。