UI not responding on XP / Citrix

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

UI not responding on XP / Citrix

Postby jtuchel » Thu Feb 21, 2008 1:44 am

We have a customer who uses Citrix for deployment.
There is a place in the app where a number of CICS transactions is fired up and before that a lot of traversing the object model is being performed to gather information.
While this is running, if you click on the window, its menu bar turns white and as soon as you click into the window, the window bar says "Not responding" (In german: "Keine Rückmeldung"). When the processing is done, everything is fine again and the app continues to be responsive and works as usual.

We've tried forking the processing at several priorities: userBackground, systemBackground and even timing.
The behaviour doesn't change.
The "theory" behind that was that this would possibly make the VM respond to Windows events while it's waiting for a Semaphore that is signalled at the end of the forked Block.

Did I oversee something here? Is the for a Semaphore blocking the UI Process? Is the theory wrong after all? Is it a known problem to anybody out there?

Also putting this into a showBusyCursorWhile: doesn't help, but I didn't really expect it to ... ;-)

Thanks in advance for any help

Joachim
jtuchel
[|]
 
Posts: 245
Joined: Fri Oct 05, 2007 1:05 am
Location: Ludwigsburg, Germany

Re: UI not responding on XP / Citrix

Postby jtuchel » Thu Feb 21, 2008 1:55 am

I should possibly add that the effect can be seen in the image as well as in tha packaged runtime.
jtuchel
[|]
 
Posts: 245
Joined: Fri Oct 05, 2007 1:05 am
Location: Ludwigsburg, Germany

Re: UI not responding on XP / Citrix

Postby wembley » Fri Feb 22, 2008 5:28 am

Joachim -

Can I assume that starting up the CICS transactions is done through PlatformFunction calls? These calls, unless made using one of the async call flavors, will lock the Smalltalk VM (and all Smalltalk "green threads") until the call completes.

Forking a process at a lower priority (like 'userBackground', NOT 'timing') should work as long as the forked process yields at frequent intervals. Remember that VA Smalltalk uses a cooperative process scheduling model (similar to the CICS model) which means that once a process is running, it will continue to run until it performs some operation that causes it to suspend. If it is in a tight processing loop, then it will need to yield
Code: Select all
Processor yield
to allow other processes to run.
John O'Keefe [|], Principal Smalltalk Architect, Instantiations Inc.
wembley
Moderator
 
Posts: 405
Joined: Mon Oct 16, 2006 3:01 am
Location: Durham, NC


Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest