Should be EWOULDBLOCK is what I meant, not shouldn’t.

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Tony Paloma
Sent: Wednesday, January 07, 2009 2:46 PM
To: [email protected]; 'Half-Life dedicated Linux server mailing list'
Subject: Re: [hlds_linux] strace -p on HLDS. Is it normal communicate?

I thought this too, but it shouldn't be EWOULDBLOCK not EAGAIN.

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Ryan Burke
Sent: Wednesday, January 07, 2009 12:18 PM
To: Half-Life dedicated Linux server mailing list
Subject: Re: [hlds_linux] strace -p on HLDS. Is it normal communicate?

My educated guess is that they are using non-blocking calls to recvfrom
using the MSG_DONTWAIT flag. Normally recv and recvfrom will block until
data is received. This stops the flow of the program unless it is
multi-threaded with on thread dealing with network I/O and some kind of
parent thread to do something when network I/O occurs. Look at the
MSG_DONTWAIT in "man recvfrom" and it explains it. It is a pretty common
way to do high performance asynchronous network programming.

Ryan

> sorry it's much faster than 10 times per second, my terminal is slow.
> first that I posted is on
> 1231356114, 376819
> second
> 1231356114, 378804
> that is every ~2000 microseconds so ~500/s and that server is stable
> 500fps, so it happens every frame.
>
> Kveri
>
> Kveri  wrote / napísal(a):
>> I don't know if it is normal, but I can confirm that it's happening.
>>
>> recvfrom(4, 0xfff4ebb4, 4010, 0, 0xfff4fb60, 0xfff4eb9c) = -1 EAGAIN
>> (Resource temporarily unavailable)
>> gettimeofday({1231356114, 376819}, NULL) = 0
>> gettimeofday({1231356114, 376846}, NULL) = 0
>> gettimeofday({1231356114, 376873}, NULL) = 0
>> gettimeofday({1231356114, 376900}, NULL) = 0
>> gettimeofday({1231356114, 376928}, NULL) = 0
>> gettimeofday({1231356114, 376953}, NULL) = 0
>> gettimeofday({1231356114, 376976}, NULL) = 0
>> select(5, [4], NULL, NULL, {0, 1000})   = 0 (Timeout)
>> select(1, [0], NULL, NULL, {0, 0})      = 0 (Timeout)
>> gettimeofday({1231356114, 377713}, NULL) = 0
>> gettimeofday({1231356114, 377738}, NULL) = 0
>> select(5, [4], NULL, NULL, {0, 1000})   = 0 (Timeout)
>> select(1, [0], NULL, NULL, {0, 0})      = 0 (Timeout)
>> gettimeofday({1231356114, 378711}, NULL) = 0
>> gettimeofday({1231356114, 378738}, NULL) = 0
>> recvfrom(4, 0xfff4ebb4, 4010, 0, 0xfff4fb60, 0xfff4eb9c) = -1 EAGAIN
>> (Resource temporarily unavailable)
>> gettimeofday({1231356114, 378804}, NULL) = 0
>> gettimeofday({1231356114, 378831}, NULL) = 0
>> gettimeofday({1231356114, 378855}, NULL) = 0
>> gettimeofday({1231356114, 378878}, NULL) = 0
>> gettimeofday({1231356114, 378902}, NULL) = 0
>> gettimeofday({1231356114, 378925}, NULL) = 0
>> gettimeofday({1231356114, 378949}, NULL) = 0
>> select(0, NULL, NULL, NULL, {0, 1000})  = 0 (Timeout)
>> select(1, [0], NULL, NULL, {0, 0})      = 0 (Timeout)
>> gettimeofday({1231356114, 379714}, NULL) = 0
>> gettimeofday({1231356114, 379739}, NULL) = 0
>> recvfrom(4, 0xfff4ebb4, 4010, 0, 0xfff4fb60, 0xfff4eb9c) = -1 EAGAIN
>> (Resource temporarily unavailable)
>> gettimeofday({1231356114, 379803}, NULL) = 0
>> gettimeofday({1231356114, 379829}, NULL) = 0
>> gettimeofday({1231356114, 379855}, NULL) = 0
>> ^C <unfinished ...>
>> Process 31734 detached
>>
>> Maybe 10 times per second or so
>>
>> OS: Gentoo 64
>> 2x Quad Xeon, 8GB RAM
>> conn: 1GBit
>>
>> Kveri
>>
>> Pawel  wrote / napísal(a):
>>
>>> Hi,
>>>
>>> I'm starting new hlds process with -game cstrike etc. Normal clear CS
>>> 1.6
>>> server.
>>> Next what i'm going to do is strace command on this process.
>>>
>>> So while using strace -p 3535353... I got many times:
>>>
>>> recvfrom(4, 0xfff43114, 4010, 0, 0xfff440c0, 0xfff430fc) = -1 EAGAIN
>>> (Resource temporarily unavailable)
>>>
>>> It is normal?
>>> My OS is Slamd64
>>> and hardware:
>>> 2x Xeon Quad-Core, 4GB RAM
>>> Internet connection: 100mbit up/down
>>>
>>> Thanks
>>> _______________________________________________
>>> To unsubscribe, edit your list preferences, or view the list archives,
>>> please visit:
>>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>>
>>>
>>>
>>
>> _______________________________________________
>> To unsubscribe, edit your list preferences, or view the list archives,
>> please visit:
>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>
>>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to