[Mono-list] Stability problem under linux MDV 2008 Cooker
Petit Eric
surfzoid at gmail.com
Sun Jul 13 17:56:42 EDT 2008
Hi
Since this long time i always have this problem, so i will try to
explain it the more clear i can .
First, in globaly , as we now threat managment is not the same under
linux and windows.
I see and don't really know if it is bad or good, under windows when
you use a BackGroundWorker ( a "second" thread") you are not allowed
to "interacte" with GUI part.
Let's say a form with a textbox "TxtBx1" and a backgroundworker "Bck",
in the event : Bck_DoWork(...), if you say This.TxtBx1.Text = "some
text"; yu have a exception about invalid interthread operation.
But under linux you don't have exception !
Second :
My prog, CsObexftp : http://cs-obexftp.wiki.sourceforge.net/ is a tool
who use the "new" C# binding of obexftp :
http://dev.zuckschwerdt.org/openobex/ the popular console programme we
see in most linux OS.
The work of csobexftp is to conect to a device like a mobile phone by
Bluetooth, usb or irda and use obex protocole to transfert files.
So i write csobexftp with 3 backgroundworker , one for conection
(BckConnect), one for read operation like download or list file
(BckRead) and a last to write like uploat/put file or make dir
(BckWrite).
As we know A Windows Form App have 2 thread, one for the graphical
part other for the code with the 3 mine (Bck) we have 5 thread.
The main compnent of the obexftp C# binding is "client", so in global
declaration i declare one : Client Cli = null;
Cli is in the thread 2 (code)
When user click on conect, i start the BckConnect work and then in
thread 3 i do a cli = new cli(conect args);
When BckConnect finished is job (in thread 2) i start the BckRead
(thread 4) to list the root folder of the phone.
when user select multiple files and say "get to my computer" i start
again the BckRead (thread 4) with the list of file to transfer and
made a loop to all files with cli.get_files(fssrce, dest);
In this loop i use BckRead.reportprogress to interacte with a
progressbar on GUI(thread2 and then thread 1).
This stuff work gread under windows, i writed with Zany the author of
obexftp a little class "cs_stress_test" who run as a console program
to connect to phone and download a list of file, it work nice under
linux with a last Mono V1.91.
But with cs-obexftp during loop the thread is not anymore executed ,
this occure never at the same time, sometime after the 1th files other
time after the 14th file
I see no error in Mono debug output and no error in obexftp debug
output where i set debug level to 5 (very hight debug )
The code who use the background worker can be read here :
http://cs-obexftp.svn.sourceforge.net/viewvc/cs-obexftp/trunk/Cs-ObexFtp/Cs-ObexFtp/Forms/MainForm.cs?view=log
My point of view is, it could be not a mono problem, but the fact i
transfert the "cli" object in 3 thread ?
But why i didn't see it under windows.
Also i was say " Stability problem under linux MDV 2008 Cooker", so i
do some test under OpenSuse 11 and problem still here .
2007/12/30 Petit Eric <surfzoid at gmail.com>:
> 2007/12/30, Petit Eric <surfzoid at gmail.com>:
>> i run csobexftp as it :
>> MONO_LOG_LEVEL="debug" MONO_EVENTLOG_TYPE=local:~/tmp/csobexftp mono
>> ./Cs-ObexFtp.exe > test.log
>> so i add test log as attachment
>> normal way should be :
>> thread 2
>> thread 1
>> thread 2
>> ................
>> but as we can see it s not the case !!
>>
>>
> the attachmement is too big so :
> http://surfzoid.free.fr/test.log
>
--
Cordially.
Small Eric Quotations of the days:
---------------------------------------------------------------------------
If one day one reproaches you that your work is not a work of
professional, say you that:
Amateurs built the arch of Noah, and professionals the Titanic.
---------------------------------------------------------------------------
Few people are done for independence, it is the privilege of the powerful ones.
---------------------------------------------------------------------------
No key was wounded during the drafting of this message.
More information about the Mono-list
mailing list