Commit bf0861aa authored by Ulrich Sibiller's avatar Ulrich Sibiller Committed by Mike Gabriel

nxagent: clarify sleep time units

No functional changes, just clarification/explanation of the existing code. Fixes ArcticaProject/nx-libs#926
parent 4213bf46
......@@ -1365,7 +1365,7 @@ static void nxagentParseSingleOption(char *name, char *value)
validateString(value), validateString(name), sleep_parse);
}
nxagentChangeOption(SleepTime, sleep_parse);
nxagentChangeOption(SleepTimeMillis, sleep_parse);
return;
}
else if (!strcmp(name, "tolerancechecks"))
......
......@@ -235,18 +235,18 @@ void nxagentBlockHandler(void * data, struct timeval **timeout, void * mask)
* display.
*/
if (NXDisplayError(nxagentDisplay) == 1 && nxagentShadowCounter == 0 && nxagentOption(SleepTime) > 0)
if (NXDisplayError(nxagentDisplay) == 1 && nxagentShadowCounter == 0 && nxagentOption(SleepTimeMillis) > 0)
{
#ifdef TEST
fprintf(stderr, "nxagentBlockHandler: sleeping for %d milliseconds for slowdown.\n",
nxagentOption(SleepTime));
nxagentOption(SleepTimeMillis));
#endif
usleep(nxagentOption(SleepTime) * 1000);
usleep(nxagentOption(SleepTimeMillis) * 1000);
now = GetTimeInMillis();
}
#ifdef TEST
else if (0 == nxagentOption(SleepTime)) {
else if (0 == nxagentOption(SleepTimeMillis)) {
fprintf(stderr, "nxagentBlockHandler: not sleeping for slowdown.\n");
}
#endif
......@@ -708,16 +708,16 @@ void nxagentShadowBlockHandler(void * data, struct timeval **timeout, void * mas
nxagentHandleConnectionChanges();
}
if (nxagentSessionState == SESSION_DOWN && nxagentOption(SleepTime) > 0)
if (nxagentSessionState == SESSION_DOWN && nxagentOption(SleepTimeMillis) > 0)
{
#ifdef TEST
fprintf(stderr, "nxagentShadowBlockHandler: sleeping for %d milliseconds for slowdown.\n",
nxagentOption(SleepTime));
nxagentOption(SleepTimeMillis));
#endif
usleep(nxagentOption(SleepTime) * 1000);
usleep(nxagentOption(SleepTimeMillis) * 1000);
}
#ifdef TEST
else if (0 == nxagentOption(SleepTime)) {
else if (0 == nxagentOption(SleepTimeMillis)) {
fprintf(stderr, "nxagentShadowBlockHandler: not sleeping for slowdown.\n");
}
#endif
......
......@@ -492,9 +492,19 @@ void nxagentPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth,
if (nxagentShadowCounter == 0 &&
NXDisplayError(nxagentDisplay) == 1 &&
nxagentOption(SleepTime) > 0)
nxagentOption(SleepTimeMillis) > 0)
{
int us = nxagentOption(SleepTime) * 4 * (length / 1024);
/*
* The original NX code had 250us (microseconds) * length/1024
* here and 50ms (milliseconds) elsewhere. Later ONE combined
* configurable sleep parameter was introduced, having a default
* of 50ms (that's milliseconds, not microseconds!), which is
* factor 200. For unknown reasons the factor was changed to 250
* at the same time. Ensure the value is somewhere between 10ms
* and 1s.
*/
int us = nxagentOption(SleepTimeMillis) * 1000 * (length / 1024) / 250;
us = (us < 10000 ? 10000 : (us > 1000000 ? 1000000 : us));
......
......@@ -157,7 +157,7 @@ void nxagentInitOptions(void)
nxagentOptions.Xinerama = 1;
nxagentOptions.SleepTime = DEFAULT_SLEEP_TIME;
nxagentOptions.SleepTimeMillis = DEFAULT_SLEEP_TIME_MILLIS;
nxagentOptions.ReconnectTolerance = DEFAULT_TOLERANCE;
......
......@@ -36,7 +36,9 @@
#define UNDEFINED -1
#define COPY_UNLIMITED -1
#define DEFAULT_SLEEP_TIME 50
/* in milliseconds */
#define DEFAULT_SLEEP_TIME_MILLIS 50
extern unsigned int nxagentPrintGeometryFlags;
......@@ -366,9 +368,9 @@ typedef struct _AgentOptions
int Xinerama;
/*
* Sleep delay in microseconds.
* Sleep delay in milliseconds.
*/
unsigned int SleepTime;
unsigned int SleepTimeMillis;
/*
* Tolerance - tightens or loosens reconnect checks.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment