Should be EWOULDBLOCK is what I meant, not shouldnt. -----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

