[M3devel] socket linger?

Mika Nystrom mika at async.caltech.edu
Tue Mar 17 10:10:11 CET 2009


Hi Jay,

All I can say about this is that one of the things that I have found
different about Modula-3 on Unix and Windows is that there are what
seems to be some quite serious bugs in the TCP stack on Windows
2000 (and probably earlier versions of NT).  They have to do with
buffering and buffer sizes.  I wouldn't be surprised if fiddling
with "linger" is some sort of workaround.  (I don't think the linger
difference could cause the bug; I think the bug is in the NT kernel.)
I don't remember the details but it has something to do with
attempting to send or receive a very large amount of data in a
single system call on a fast link.

     Mika

Jay writes:
>--_ec278f1c-d155-41e4-8856-bb89662f7cd6_
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>
>Can someone please weight on this?
>
>I think these two chunks should be identical=2C though not sure which way t=
>hey should go.
>
>=20
>
>=20
>
>C:\dev2\cm3\m3-libs\libm3\src\os\POSIX\SocketPosix.m3(472):    linger :=3D =
>Usocket.struct_linger{1=2C 1}=3B
>C:\dev2\cm3\m3-libs\libm3\src\os\WIN32\SocketWin32.m3(429):    linger :=3D =
>WinSock.struct_linger{0=2C 0}=3B
>
>
>This is the same as version #1 in the elegosoft history.
>
>I haven't checked 3.6.
>
>=20
>
> - Jay
>
>
>
>
>
>
>--_ec278f1c-d155-41e4-8856-bb89662f7cd6_
>Content-Type: text/html; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
><html>
><head>
><style>
>.hmmessage P
>{
>margin:0px=3B
>padding:0px
>}
>body.hmmessage
>{
>font-size: 10pt=3B
>font-family:Verdana
>}
></style>
></head>
><body class=3D'hmmessage'>
>Can someone please weight on this?<BR>
>I think these two chunks should be identical=2C though not sure which way t=
>hey should go.<BR>
>&nbsp=3B<BR>
>&nbsp=3B<BR>
>C:\dev2\cm3\m3-libs\libm3\src\os\POSIX\SocketPosix.m3(472):&nbsp=3B&nbsp=3B=
>&nbsp=3B linger :=3D Usocket.struct_linger{1=2C 1}=3B<BR>C:\dev2\cm3\m3-lib=
>s\libm3\src\os\WIN32\SocketWin32.m3(429):&nbsp=3B&nbsp=3B&nbsp=3B linger :=
>=3D WinSock.struct_linger{0=2C 0}=3B<BR><BR>
>This is the same as version #1 in the elegosoft history.<BR>
>I haven't checked 3.6.<BR>
>&nbsp=3B<BR>
>&nbsp=3B- Jay<BR><BR><BR><BR><BR><BR></body>
></html>=
>
>--_ec278f1c-d155-41e4-8856-bb89662f7cd6_--



More information about the M3devel mailing list