trunk/src/osd/modules/sync/work_osd.c
| r242728 | r242729 | |
| 53 | 53 | |
| 54 | 54 | #define ENV_PROCESSORS "OSDPROCESSORS" |
| 55 | 55 | |
| 56 | | // TODO: tests have shown, that 50000 appears to be the best value |
| 56 | // TODO: use either |
| 57 | // TODO: make configurable via environment for tests |
| 57 | 58 | #if defined(OSD_WINDOWS) |
| 58 | | #define SPIN_LOOP_TIME (osd_ticks_per_second() / 1000) |
| 59 | #define SPIN_LOOP_TIME (osd_ticks_per_second() / 50000) |
| 59 | 60 | #else |
| 60 | 61 | #define INFINITE (osd_ticks_per_second() * (osd_ticks_t) 10000) |
| 61 | 62 | #define SPIN_LOOP_TIME (osd_ticks_per_second() / 10000) |
| r242728 | r242729 | |
| 250 | 251 | if (osdworkqueuemaxthreads != NULL && sscanf(osdworkqueuemaxthreads, "%d", &osdthreadnum) == 1 && threadnum > osdthreadnum) |
| 251 | 252 | threadnum = osdthreadnum; |
| 252 | 253 | // TODO: also enable this for non-Windows platforms? |
| 254 | // TODO: it appears lowering SPIN_LOOP_TIME value fixed the scaling issues - needs a test case with a higher workload than n64dd |
| 253 | 255 | #if defined(OSD_WINDOWS) |
| 254 | 256 | // multi-queues with high frequency items should top out at 3 for now |
| 255 | 257 | // since we have scaling problems above that |