🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27085

Re: Multiprocessing i timeout

#27085
From: Daniel Mróz
Date: Sat, 26 Dec 2009 17:17
45 lines
2426 bytes
On 23.12.2009, William Bonawentura <news@ipartners.pl> wrote:
>> Jak widać nie pomyśleli o tym, ale można użyć
>> http://docs.python.org/library/socket.html#socket.setdefaulttimeout
> Z zastrzeżeniem, że to jest zmiana globalna - na wszystkie wątki. 
Dlatego najlepiej timeouty implementować na select.select lub select.*Poll,
np. (piszę z pamięci, więc może nie działać, ale ogólną zasadę Królewna
wyczai):


sock = socket.socket(<co tam potrzeba>)
sock.setblocking(0)
poller = select.poll()
poller.register(sock.fileno(), select.POLLOUT)
try:
    sock.connect(<co tam potrzeba>)
except socket.error, e:
    if e.args[0] not in (errno.EINPROGRESS, errno.EALREADY, errno.EWOULDBLOCK):
	sock.close()
        raise
    else:
        pass
except:
    sock.close()
    raise
events = poller.poll(<wybrany timeout>)
if not events:
    sock.close()
    raise JakiśTamWyjątek('Connect timeout')
sock.setblocking(1)


W Pythonie 3.0 już są AFAIR timeouty per obiekt gniazda, a nie
globalne, ale nie pamiętam czy obejmowały one przekroczenia czasu
połączenia, czy tylko timout transferu danych.



Pozdrawiam
Beorn

-- 
Daniel 'Beorn' Mróz <beorn@alpha.pl>    http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V!  PS+ PE++ Y+ PGP++ t- 5  X R !tv b+ DI D++ G++ e h*]
[                          r++  y+                           ]
Technical Details
Message-ID: <slrnhjchh0.h9g.beorn@pino.cyberdeck.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail
References: <hgo2tn$d8r$2@achot.icm.edu.pl> <6257a74b-fcb0-4c64-843f-d13c1e5931e9@r5g2000yqb.googlegroups.com> <5e45a27a-4515-40c1-b098-f5f2724be64c@r24g2000yqd.googlegroups.com> <hgsfso$u0b$1@news2.ipartners.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail
From: Daniel Mróz <beorn@alpha.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: Multiprocessing i timeout
Date: Sat, 26 Dec 2009 17:17:17 +0000 (UTC)
Organization: A tak se walimy młotkami d:-/
Lines: 45
Message-ID: <slrnhjchh0.h9g.beorn@pino.cyberdeck.pl>
References: <hgo2tn$d8r$2@achot.icm.edu.pl> <6257a74b-fcb0-4c64-843f-d13c1e5931e9@r5g2000yqb.googlegroups.com> <5e45a27a-4515-40c1-b098-f5f2724be64c@r24g2000yqd.googlegroups.com> <hgsfso$u0b$1@news2.ipartners.pl>
NNTP-Posting-Host: fw2.itvp.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1261847837 20127 217.17.39.4 (26 Dec 2009 17:17:17 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 26 Dec 2009 17:17:17 +0000 (UTC)
User-Agent: slrn/0.9.8.1pl2.1 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit