View Issue Details

IDProjectCategoryView StatusLast Update
0004497JEDI VCL00 JVCL Componentspublic2008-10-07 00:15
ReportercorwinAssigned Toobones 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionDaily / GIT 
Target VersionFixed in Version3.36 
Summary0004497: Application don't answer after TjvDice is stopped
DescriptionIDE: Delphi 7 update 1, Delphi 2007 update 3, Delphi 2009.
OS: Windows XP SP3 ENG.
If run application containing TJVdice component, set it Rotate property
to True, than to False. After that application stops to answer.
TagsNo tags attached.

Activities

corwin

2008-10-05 03:20

reporter   ~0014744

I've made some investigations and find out that it happens in destructor TJvTimerThread.Destroy at line inherited Destroy;
where original TTread destructor cames into infinite loop.

jfudickar

2008-10-05 06:55

developer   ~0014748

Could you create a small sample?

obones

2008-10-06 00:05

administrator   ~0014761

Yes, please post the zipped sources of a sample application showing this issue.

corwin

2008-10-06 01:41

reporter   ~0014764

Well it can be seen even under IDE, put TJVDice on form set Rotate to True,
then to False. IDE will hang.

jfudickar

2008-10-06 16:03

developer   ~0014771

The Problem is in TJvTimer.Destroy.

The point is that after FTimerThread.Terminate; the procedure TJvTimerThread.Execute; is not stopped.

Don't know why, but i can't figure out the problem.
Maybe it's too late for me :-)

2008-10-06 16:03

 

JvDiceTest.zip (1,109 bytes)

obones

2008-10-07 00:02

administrator   ~0014772

That's "logical". Calling Terminate merely sets Terminated to True and it is the responsibility of the Execute method to regularly test this value and stop when it changes to "True".
What the problem is here is that the thread is waiting for the code inside "TimerFires" to terminate, but this code is waiting for the thread to terminate thru FTimer.Free;
This code is the source of the deadlock. I'm modifying it right now to make it work better and still avoid memory leaks.

obones

2008-10-07 00:14

administrator   ~0014773

This is now fixed in SVN, revision 11945

Issue History

Date Modified Username Field Change
2008-10-05 01:46 corwin New Issue
2008-10-05 03:21 corwin Note Added: 0014744
2008-10-05 06:55 jfudickar Note Added: 0014748
2008-10-06 00:05 obones Note Added: 0014761
2008-10-06 00:05 obones Status new => feedback
2008-10-06 01:41 corwin Note Added: 0014764
2008-10-06 16:03 jfudickar Note Added: 0014771
2008-10-06 16:03 jfudickar File Added: JvDiceTest.zip
2008-10-07 00:02 obones Note Added: 0014772
2008-10-07 00:02 obones Status feedback => confirmed
2008-10-07 00:14 obones Status confirmed => resolved
2008-10-07 00:14 obones Fixed in Version => Daily / SVN
2008-10-07 00:14 obones Resolution open => fixed
2008-10-07 00:14 obones Assigned To => obones
2008-10-07 00:14 obones Note Added: 0014773