Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
d545afdf
Unverified
Commit
d545afdf
authored
Jan 15, 2021
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'uli42-pr/fix_resume' into 3.6.x
Attributes GH PR #977:
https://github.com/ArcticaProject/nx-libs/pull/977
parents
d5a3b440
e7d5ba4e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
1 deletion
+22
-1
Handlers.c
nx-X11/programs/Xserver/hw/nxagent/Handlers.c
+22
-1
No files found.
nx-X11/programs/Xserver/hw/nxagent/Handlers.c
View file @
d545afdf
...
...
@@ -1070,7 +1070,28 @@ void nxagentDispatchHandler(ClientPtr client, int in, int out)
* into the inner dispatch loop forever.
*/
if
(
!
SmartScheduleSignalEnable
)
/*
* The behaviour described in the comment above also happens with the
* smart scheduler if all of the following conditions are met:
* - the agent is suspended
* - SleepTimeMillis is set (the default is sufficient to trigger this)
* - a client is doing a lot of image operations
* - nxagentShadowCounter is 0
* In that case the agent will slow down the image operations by calling
* an intermediate sleep resulting in the client's request queue never
* being empty. Which in turn leads to the drain loop described above.
* isItTimeToYield will then never be set. The (dramatic) result of this
* is that nxagent will not process any signals and therefore cannot be
* resumed anymore!
* For this reason we do not limit below code to the dumb scheduler but also
* run it if above conditions are met - ensuring regular yields.
* See issue #903
*/
if
(
!
SmartScheduleSignalEnable
||
(
nxagentShadowCounter
==
0
&&
NXDisplayError
(
nxagentDisplay
)
==
1
&&
nxagentOption
(
SleepTimeMillis
)
>
0
))
{
if
(
client
->
index
!=
nxagentDispatch
.
client
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment