New question #191167 on Sikuli:
https://answers.launchpad.net/sikuli/+question/191167
If I using either a Sikuli Observer, or create my own thread that runs an
.exists check inside of a region, mouse and keyboard input can be incredibly
slow (choppy jumping and typing) to the point of Sikuli missing clicks when it
attempts them.
I'm using a semaphore object to act a queue for when a thread needs
mouse/keyboard access. The semaphore has a ticket capacity of 1, so any other
threads that reach a point where they need mouse control will attempt to
acquire a ticket, and suspend until the ticket (input control) is granted.
My logic:
Main thread: Checks various regions in loop, if the pattern exists that it
is looking for, and the thread requires keyboard/mouse control, request a
ticket from the semaphore. After completing its mouse/keyboard usage, returns
the ticket to the semaphore to be used by the next thread to request access.
Observer/secondary thread: Does the same thing, but only monitors one
(different) region at a higher frequency, as it's where the primary work of the
program takes place.
Now regardless of whether I use a separate thread, or use an observer, Sikuli
actions run on another thread can be choppy to the point of not working
properly (failed clicks being the most common due to mouse "lag" across the
screen.
At first I tried a thread to observe each region, but had this issue. Now I'm
down to the main thread and one observer thread and the issue remains. I'm not
hitting a resource cap or maximum processor usage. Any idea what could be
causing the bottleneck?
--
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.
_______________________________________________
Mailing list: https://launchpad.net/~sikuli-driver
Post to : [email protected]
Unsubscribe : https://launchpad.net/~sikuli-driver
More help : https://help.launchpad.net/ListHelp