On Sat, 20 May 2000, Benjamin Draper wrote:
> Yup, I see that, but where would the bug be? I've eliminated it being a
>problem with anything I've added by using bpl11, bpl12, bpl16 and bpl17
>*stock* code. This just suddenly 'happened' on Wednesday, and only
>occured once before and the solution was to reboot the machine.
What kernel and operating system?
Did you compile the source code as anything other than Linux or BSD code?
> from the man page for 'select':
>> int select(int n, fd_set *readfds, fd_set *writefds, fd_set
>> *exceptfds, struct timeval *timeout);
>> ...
>> This causes problems ... when code is ported to Linux that reuses
>> a struct timeval for multiple selects in a loop without
>> reinitializing it. Consider timeout to be undefined after select
>> returns.
Correct:
#define PER_MASK (0x00ff)
#define PER_LINUX (0x0000)
#define PER_LINUX_32BIT (0x0000 | ADDR_LIMIT_32BIT)
#define PER_SVR4 (0x0001 | STICKY_TIMEOUTS)
#define PER_SVR3 (0x0002 | STICKY_TIMEOUTS)
#define PER_SCOSVR3 (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)
#define PER_WYSEV386 (0x0004 | STICKY_TIMEOUTS)
#define PER_ISCR4 (0x0005 | STICKY_TIMEOUTS)
#define PER_BSD (0x0006)
#define PER_XENIX (0x0007 | STICKY_TIMEOUTS)
#define PER_LINUX32 (0x0008)
#define PER_IRIX32 (0x0009 | STICKY_TIMEOUTS) /* IRIX5 32-bit */
#define PER_IRIXN32 (0x000a | STICKY_TIMEOUTS) /* IRIX6 new 32-bit */
#define PER_IRIX64 (0x000b | STICKY_TIMEOUTS) /* IRIX6 64-bit */
STICKY_TIMEOUTS will not modify the timeout parameter. So if you compile
it for BSD or Linux, you will probably get it modified.
> As you said in your first reply, if select returns an error, null_time
>could become undefined, so is using null_time in this way a bad thing?
>Or is my MUD host the problem? I can put in a throwaway timeval struct,
>setup like null_time, so null_time isn't trashed, but is this the right
>way to go about it?
By looking at the kernel code, if given 0/0 for timeout, you should get 0/0
back anyway. So the above may not matter, or you have memory corruption
somewhere that is getting lucky.
--
George Greer
greerga@circlemud.org
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT