6.6.11

Aus BC-Wiki
Zur Navigation springen Zur Suche springen

Zur Übersicht

  • screensaver: Implement new screensaver coordinator logic as requested by Rom: If the coordinator cannot connect to the core client:
    • coordinator retries connecting every 10 seconds
    • coordinator launches the default graphics application with the argument --retry_connect, so the default graphics app will continue running and will also retry connecting every 10 seconds. If the coordinator successfully connected to the core client, it launches the default graphics application without the argument --retry_connect. If the default graphics application can't connect, it will return immediately with the exit code ERR_CONNECT. In that case, the coordinator assumes the default graphics app was blocked by a firewall and so the coordinator will run only project (science) graphics
  • lib: Fix build break on Windows
  • client: if a project is at max backoff for a resource, stop accumulating debt if it's at or around zero. This prevents other projects from being driven unboundedly negative.
  • client: if the number of overworked projects exceeds the number of device instances, clear debts; this indicates that an earlier client was buggy and produced bad debt values.
  • client: new work-fetch policy:
       1) if an instance is idle, get work from highest-debt project,
           even if it's overworked.
       2) if resource has a shortfall, get work from highest-debt
           non-overworked project
       3) if there's a fetchable non-overworked project with no runnable jobs,
           get from from the highest-debt one.
       (each step is done first for GPU, then CPU)
       Clause 3) is new.
       It will cause the client to get jobs for as many projects as possible,
       even if there is no shortfall.
       This is necessary to make the notion of "overworked" meaningful
       (otherwise, any project with long jobs can become overworked).
       It also maintains as much variety as possible (like pre-6.6 clients).
       Also (small bug fix) if a project is overworked for resource R,
       request work for R only in case 1).
  • client: remove the "debt repair" mechanism added earlier today. There are situations where multiple projects can legitimately have large negative LTD on a uniprocessor. Instead...
  • client: add <zero_debts> option to cc_config.xml
  • client: fix bug that can cause no GPU jobs to be scheduled even when a GPU is free
  • Update various source filed to GPL 3. Note: I've only updated those files which I created or have been maintaining. There are many others which still have the GPL 2.1 license
  • add a few GPL 3 notices
  • client: tweak the LTD calculation so that the largest debt always tends towards zero
  • client: print message if downloaded file has wrong size
  • client: associate file xfer messages with a project; fixes #848
  • client: more instances of showing project with message. Fixes #848
  • WINSCR: Fix the BOINC text displayed is the screensaver control panel applet
  • WINSCR: Get rid of the 'Up to 5 second wait' for the data thread to terminate. Force terminate the thread and clean up the graphics app in a clean-up routine. Forcing the user to wait when they return to the system isn't a good idea.
  • WINSCR: Fix screensaver issue where the screensaver locks up when the graphics application deadlocks for one reason or another.
       Create two new threads:
         1. Monitor system for keyboard and mouse events.
         2. Shuffle window z-order positions if needed.
         
       The keyboard/mouse event monitor is isolated from either
         the core client getting stuck in a loop and not returning
         the results of an RPC or the window shuffling code which
         can get stuck if the graphics application dead locks.
         
       The window shuffle code is isolated due to the
         BroadcastSystemMessage() API using something akin to
         SendMessage() which waits for a return value from the
         target windows winproc.  If a graphics application
         deadlocks for one reason or another it'll cause
         the thread to stall.  This isn't terminal and so we
         just wait for the next time the data thread chooses
         a new application and terminates the old one which
         will cause the thread to resume.
         
       This should resolve all outstanding issues with the
         screensaver not exiting when the mouse or keyboard
         is used
  • client: fix work-fetch bug that caused infinite fetch; cleanup/reorganization of work fetch logic
  • client: work-fetch bug fix: if we're fetching work for a starved project, it most have no runnable jobs for ANY resource.
  • client: work-fetch bug fix: when setting requests in the shortfall case, don't request anything if project is backed off or overworked for the resource
  • screensaver: Code consolidation, fix bug terminating default graphics application on screensaver exit
  • screensaver: Fix a bug I introduced during code consolidation
  • WINSCR: Remove the progress indication code from the coordinator. It is now handled by the default screensaver app.
  • WINSCR: Clean-up some of the thread cleanup logic