Updated tree and windows binary:
After an extensive period of poor connectivity with my pool I decided to make minerd much more robust with respect to networking and caching of work items. I modified to code to find when a worker thread is 2/3 of the way through completing that search and will then queue a new work request in advance at that point. This allows getting work over slow or intermittent connections asynchronously from the worker thread without having to have a large buffer of increasingly stale work. Then I added code to flush out all the old items of work when a longpoll is detected -and- queue a whole new set of work for each and every thread in advance since they'll all need new work. I've also updated the cpumining code to properly work to the end of a work item (and not be counted as inefficient mining), and made some of the log updates more robust. Minerd should cope better with spotty connections under periods of server stress now, and rejects across longpolls should be rarer.
New windows binary:
http://ck.kolivas.org/apps/cpuminer-ycros-2011-07-04.zipKnown bugs:
It does not work with short options (only --long time options), and will crash with invalid options.
Sometimes there's a crash deep within libcurl that looks like this:
*** longjmp causes uninitialized stack frame ***
This happens deep within the libcurl code and appears to be not related to minerd at all. The only thing it seems I can do about it is move to a different library. This is the only recurring problem and because of it I put minerd to auto-restart for myself though it's quite rare (sometimes happens immediately on starting on windows).