From: SourceForge.net <no...@so...> - 2010-02-28 20:20:58
|
Bugs item #1842856, was opened at 2007-12-02 11:09 Message generated for change (Comment added) made by miesfeld You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=1842856&group_id=119701 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: External Functions >Group: v4.0.1 >Status: Open Resolution: Fixed Priority: 5 Private: No Submitted By: Mark Miesfeld (miesfeld) Assigned to: Mark Miesfeld (miesfeld) Summary: CPU 100% when ooDialog program started through explorer Initial Comment: Rick, This is just a copy and paste of the CPU 1005 problem I talked about on the devel list. It may very well be that this has the same root cause as some of the other excessive CPU bugs. I thought it best to just open up a new bug and track what I know for sure. I have tracked down a repeatable way of pegging the CPU at 100%, and a hack that fixes it. Scenario: ------------- Any ooDialog program. Program extension is .rex, ftype association is the default of .rex associated with rexx.exe. A good example is the sample.rex program. If you double click on the icon of the program, either on the Desktop or in explorer, the rexx process and the rxapi process will use 100% of the CPU. The CPU is split between the 2, but not evenly. rexx.exe takes more than rxapi. On a dual processor system (including dual core) the CPU is 50 %. (Which makes sense of course, one processor is maxed out, the other is free.) If you start the same ooDialog program from the command line, CPU is normal, always. If you start the ooDialog program using rexxhide, CPU is normal. For rexxhide, what I mean is that if .rex is associated with rexxhide instead of rexx, then double clicking on the program icon does not use excessive CPU. Or if you set up the icon to start the ooDialog with rexxhide instead of rexx then CPU is normal. Hack / work around: ----------------------------- In plbdlg.cls you have the run method. If I add in a do-nothing start, the problem completely goes away. As far as I can tell, always. ::method Run unguarded protected use arg sleeptime if Arg(1,'o') = 1 then sleeptime = 0 msgObj = self~start("workAround") <-- add drop msgObj <-- add do while self~finished = 0 self~HandleMessages(sleeptime) end ::method workAround <-- add empty method In private e-mail I have had a 3 people verify both the repeatability of the problem and that the work around fixes it. ---------------------------------------------------------------------- >Comment By: Mark Miesfeld (miesfeld) Date: 2010-02-28 12:20 Message: Committed revision 5658. 4.0.1 merge. ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2010-02-27 09:16 Message: The fix for this will have to come in a release after 4.0.1 ---------------------------------------------------------------------- Comment By: Mark Miesfeld (miesfeld) Date: 2009-11-08 12:17 Message: Committed revision 5312. I believe this is fixed with commit 5312. The fix will be in the next release of ooRexx. Please look at the bug: 2303747 CPU LOAD 100% for details and a work around you may wish to use until the next release ---------------------------------------------------------------------- Comment By: Lee Peedin (pragmatic_lee) Date: 2007-12-04 04:47 Message: Logged In: YES user_id=1223125 Originator: NO Mark, I just rebooted and executed sample.rex again (from Explorer). As you can see from the attached screen dump, rexx.exe & rxapi.exe are using 0% of the CPU. Maybe I misunderstood this bug - does this occur for you with 3.2 or with the current SVN compile? Lee File Added: sample_execution.jpg ---------------------------------------------------------------------- Comment By: Lee Peedin (pragmatic_lee) Date: 2007-12-04 04:32 Message: Logged In: YES user_id=1223125 Originator: NO Mark, I just attempted to duplicate this and was partially successful. On a dual processor system I see CPU usage from 17% to 30% on an ooDialog program that I created myself that "has buttons". If I execute a "static" dialog, I see no CPU usage at all once the dialog is displayed. When running the sample.rex program I see from 22% to 37% cpu usage. I also noticed that when running sample.rex, there was a "delay" on clicking the Exit button or the X in the upper right corner. Also, I see no difference with sample.rex after modifying pbldlg.cls as you described above. It's been a while since I rebooted, so will reboot and try the tests again. Lee ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684730&aid=1842856&group_id=119701 |