[ck] Re: Threading issues? [[email protected]: ck Digest, Vol 3, Issue 16]

Roger Olson u60 at comcast.net
Mon Aug 30 20:07:25 CDT 2004


Hopefully, the below information will prove useful regarding this
discussion:

I have an app (United Devices), a distributed computing type program that is
reliant upon threading priorities and remote operation processes.  Under
Windows98 -> me, the process tree looks as such:

kernel32 Pri class High(13), 8 threads: TimeCrit(15), Norm(13), Lowest(11)
|_msgsvr32 Pri class Norm(8), 1 thread Norm(8)
  |_explorer.exe Pri class Norm(8), 6 threads: AboveNorm(9), Norm(8),
Lowest(6)
    |_UD.exe Pri class Norm(8), 3 threads Norm(8)
      |_UD_xxxxxxx.exe Pri class Idle(4), Norm(4), Idle(1)
        |_UD_ligfit_Release.exe Pri class Idle(4), 2 threads Norm(4),
Idle(1) <== working BG process thread

The working back ground process thread is programed to utilize all available
CPU time but immediately relinquish the CPU to any user, sytem or other app
requests hence the Idle(1) priority.  Please see
http://members.toast.net/obc/t_ud10.html  for a screen shot of the task
manager process
tree used to discover this info if usefull.  All these priorities are static
btw.

I recently patched my Wine with Alexander Yaworky's "Remote Opertaions"
patch submittal to see how the app would respond.  Basically, the app runs
fine and does most everything expected under Windows except, upon completion
of a work unit when the user interface (the Agent) is supposed to take over
and close all the "BG working threads", compress the Work Unit file to
prepare for uploading, the whole app goes to idle.  Upon closing the Agent,
the following Wine err msg appears while the two ligfit threads are left
active when they should have been shut down by closing the Agent using the
app exit procedure.

Wine err msg after exiting application:

err:ntdll:RtlpWaitForCriticalSection section 0x401f001c "?" wait timed out
in thread 0011, blocked by 0010, retrying (60 sec)

I must manually kill both those threads to restart the Agent under Wine to
resume processing whereas it sometimes will complete, upload, retrieve a new

work unit and process only to repeat this cycle again.  I attached the
outputs of ps -Afm --forest and top while Agent is in progress in the hopes
of providing useful info.  I also tried renice'ing the bg process threads
and the wineserver to +19 but same problem so that doesn't appear to be a
workaround for this app.

Thanks, Roger
-------------- next part --------------
[root at starbase1 root]# ps -Afm --forest
...
root      4963     1  0 13:36 ?        00:00:00 /usr/bin/gdm-binary -nodaemon
root      5012  4963  0 13:36 ?        00:00:00  \_ /usr/bin/gdm-binary -nodaemon
root      5013  5012  1 13:36 ?        00:00:16      \_ /usr/X11R6/bin/X :0 -auth /var/gdm/:0.Xauth vt7
root      5024  5012  0 13:37 ?        00:00:00      \_ /bin/sh /usr/bin/startkde
root      5088  5024  0 13:37 ?        00:00:00          \_ /usr/bin/ssh-agent /root/.Xclients
root      5174  5024  0 13:37 ?        00:00:00          \_ kwrapper ksmserver
root      5144     1  0 13:37 ?        00:00:00 kdeinit: Running...
root      5171  5144  0 13:37 ?        00:00:00  \_ /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f
root      5177  5144  0 13:37 ?        00:00:00  \_ kdeinit: kwin -session 11c0a80002000109191933600000052680000_1093832490_344324
root      5182  5144  0 13:37 ?        00:00:00  \_ kdeinit: kio_file file /tmp/ksocket-root/klauncherkaEgqc.slave-socket /tmp/ksocket-root/kdesktoptKL6Ka.s
root      5187  5144  0 13:37 ?        00:00:00  \_ /usr/bin/pam-panel-icon --sm-client-id 11c0a80002000109191934000000052680003
root      5189  5187  0 13:37 ?        00:00:00  |   \_ /sbin/pam_timestamp_check -d root
root      5188  5144  0 13:37 ?        00:00:02  \_ kdeinit: konqueror -session 11c0a80002000109382441500000051730004_1093832490_335064
root      5190  5144  0 13:37 ?        00:00:01  \_ kdeinit: konsole -session 11c0a80002000109382471100000051730007_1093832490_335402
root      5194  5190  0 13:37 pts/1    00:00:00  |   \_ /bin/bash
root      5330  5194  0 13:55 pts/1    00:00:00  |       \_ ps -Afm --forest
root      5236  5144  0 13:40 ?        00:00:00  \_ kdeinit: konsole
root      5237  5236  0 13:40 pts/2    00:00:00  |   \_ /bin/bash
root      5312  5237  1 13:53 pts/2    00:00:02  |       \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread ud.exe
root      5316  5312  0 13:53 pts/2    00:00:00  |           \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread ud.exe
root      5317  5316  0 13:53 pts/2    00:00:00  |           |   \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread ud_1110762.exe
root      5319  5317  0 13:53 pts/2    00:00:00  |           |       \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread ud_1110762.exe
root      5320  5317 96 13:53 pts/2    00:02:25  |           |       \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread C:/Program Files/United De
root      5321  5320  0 13:53 pts/2    00:00:00  |           |           \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread C:/Program Files/Unite
root      5318  5312  0 13:53 pts/2    00:00:00  |           \_ /usr/local/bin/wine-preloader /usr/local/bin/wine-pthread ud.exe
root      5322  5144  0 13:53 ?        00:00:00  \_ kdeinit: kio_file file /tmp/ksocket-root/klauncherkaEgqc.slave-socket /tmp/ksocket-root/konquerorxyBypb.
root      5147     1  0 13:37 ?        00:00:00 kdeinit: dcopserver --nosid
root      5150     1  0 13:37 ?        00:00:00 kdeinit: klauncher
root      5152     1  0 13:37 ?        00:00:00 kdeinit: kded
root      5173     1  0 13:37 ?        00:00:00 kdeinit: knotify
root      5176     1  0 13:37 ?        00:00:00 kdeinit: ksmserver
root      5179     1  0 13:37 ?        00:00:01 kdeinit: kdesktop
root      5181     1  0 13:37 ?        00:00:02 kdeinit: kicker
root      5186     1  0 13:37 ?        00:00:00 kdeinit: kwrited
root      5193     1  0 13:37 ?        00:00:00 kalarmd --login
root      5269     1  0 13:41 ?        00:00:00 kdeinit: kio_uiserver
root      5315     1  0 13:53 ?        00:00:00 /usr/local/bin/wineserver
[root at starbase1 root]# top

 13:53:21  up 17 min,  4 users,  load average: 0.47, 0.33, 0.25
77 processes: 73 sleeping, 4 running, 0 zombie, 0 stopped
CPU states:  60.2% user  39.7% system   0.0% nice   0.0% iowait   0.0% idle
Mem:  1030856k av,  303952k used,  726904k free,       0k shrd,   16436k buff
                    241864k actv,   11216k in_d,   10672k in_c
Swap: 4080456k av,       0k used, 4080456k free                  131528k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
 5320 root      25   0 84884  19M  4996 R    97.8  1.9   0:12   0 wine-preloader
 5013 root      15   0 80544  14M  3484 S     1.7  1.4   0:13   0 X
 5190 root      15   0 20088  19M 11804 R     0.1  1.9   0:01   0 kdeinit
 5315 root      15   0  1396 1396   668 S     0.1  0.1   0:00   0 wineserver
    1 root      15   0   480  480   428 S     0.0  0.0   0:04   0 init
    2 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 keventd
    3 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kapmd
    4 root      34  19     0    0     0 SWN   0.0  0.0   0:00   0 ksoftirqd_CPU0
    9 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 bdflush
    5 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kswapd
    6 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kscand/DMA
    7 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kscand/Normal
    8 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kscand/HighMem
   10 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kupdated
   11 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 mdrecoveryd
   15 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kjournald
   73 root      23   0     0    0     0 SW    0.0  0.0   0:00   0 khubd
 4138 root      19   0     0    0     0 SW    0.0  0.0   0:00   0 kjournald
 4459 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 eth0
 4508 root      23   0   996  996   724 S     0.0  0.0   0:00   0 dhclient
 4551 root      15   0   568  568   484 S     0.0  0.0   0:00   0 syslogd
 4555 root      15   0   444  444   392 S     0.0  0.0   0:00   0 klogd
 4581 rpc       23   0   572  572   492 S     0.0  0.0   0:00   0 portmap
 4600 rpcuser   25   0   704  704   624 S     0.0  0.0   0:00   0 rpc.statd
 4667 root      25   0   492  492   440 S     0.0  0.0   0:00   0 apmd
 4704 root      25   0  1516 1516  1276 S     0.0  0.1   0:00   0 sshd
 4718 root      24   0   904  904   748 S     0.0  0.0   0:00   0 xinetd
 4735 ntp       15   0  2404 2404  2160 S     0.0  0.2   0:00   0 ntpd
 4761 root      15   0  2528 2528  1864 S     0.0  0.2   0:00   0 sendmail
 4770 smmsp     25   0  2264 2256  1732 S     0.0  0.2   0:00   0 sendmail
 4780 root      24   0 15540  15M  2368 S     0.0  1.5   0:00   0 spamd
 4789 root      15   0   452  452   400 S     0.0  0.0   0:00   0 gpm
 4799 bin       15   0  1008 1008   580 S     0.0  0.0   0:00   0 cannaserver
 4811 root      15   0   592  592   524 S     0.0  0.0   0:00   0 crond
 4822 root      15   0  2928 2928  1412 S     0.0  0.2   0:00   0 cupsd
 4866 wnn       25   0  3924 3924   576 S     0.0  0.3   0:00   0 jserver
 4905 xfs       15   0  5540 5540   960 S     0.0  0.5   0:01   0 xfs
 4914 root      25   0  2020 2020  1412 S     0.0  0.1   0:00   0 smbd
 4918 root      15   0  1812 1808  1248 S     0.0  0.1   0:00   0 nmbd
 4927 root      39  19   624  624   536 S N   0.0  0.0   0:00   0 anacron
 4936 daemon    15   0   540  540   476 S     0.0  0.0   0:00   0 atd
 4946 root      25   0   548  548   496 S     0.0  0.0   0:00   0 rhnsd
 4957 root      23   0   408  408   352 S     0.0  0.0   0:00   0 mingetty
 


More information about the wine-devel mailing list