On 2007-08-29 18:36:12 -0400, Guy Hulbert wrote: > On Wed, 2007-08-29 at 18:03 -0400, Charlie Brady wrote: > > That is just asserting that no single process could receive two > > connections in the same tick of time() (because if it could, it's > > trivial > > Just assume that time() can have the granularity of the CPU instruction > counter[1].
It could (if your perl implementation uses 128 bit long doubles), but it isn't guaranteed to have that. You have to plan for the worst case and that's probably a 60 Hz counter. Here are some (measured) resolutions of gettimeofday on various systems: Linux/i386: 1 ms Linux/SPARC: 2 ms HP-UX/PA-RISC: 2 ms Linux/Alpha: 976 ms (1024 Hz) Ok, so the Alpha is obsolete, and Sun and HP hardware seems to include a timer with reasonably high resolution (both systems are a bit old I'd expect newer gear get . I don't know anything about PowerPC hardware though, and maybe we should worry about ARM for embedded devices (although it could be argued that this is the least problem for anybody building a mail-toaster on very small hardware). > However, with a 16 bit PID and 65K processors you might run > into collisions with the PID ... I don't know see that follows. The PID still has to be unique at any particular time. If a system can run more than 32k processes in parallel it must use a 32 bit PID. The combination of hires time and pid is more likely to be non-unique for an async server. It might be possible to call accept() and gettimeofday() twice within the same microsecond. > but I doubt anyone has a connection machine to run qpsmtpd on. > > I think time() + PID is sufficient "for now" ... unless threads share > the PID ... They do on most systems - but you could use the TID instead of the PID. > ( otoh, qpsmtpd is not even threaded is it ? ). It might be possible to run Apache::Qpsmtpd on a multithreaded Apache. hp -- _ | Peter J. Holzer | I know I'd be respectful of a pirate |_|_) | Sysadmin WSR | with an emu on his shoulder. | | | [EMAIL PROTECTED] | __/ | http://www.hjp.at/ | -- Sam in "Freefall"
signature.asc
Description: Digital signature