Login
Templates, Tools and Utilities
|
||
![]() |
![]() |
Icetips Article
Back to article list
Search Articles
Add Comment
Printer friendly
Direct link
Clarion 6: Frequent GPFs in IniMgr.Kill in Clarion 6 Gold 2004-02-16 -- Kevin Erskine I frequently get GPF in the INIMgr.Kill method -- I think the coding is wrong -- Not checking for NULLs
Current code in ABUTIL.CLW: INIClass.Kill PROCEDURE critProc CriticalProcedure CODE critProc.init(SELF.critSect) SELF.UpdateQueue('__Dont_Touch_Me__','Sectors',| SELF.Sectors,SELF.Sectors.Family,| SELF.Sectors.Item,SELF.Sectors.Type) !*** IF NOT SELF.Sectors &= NULL DISPOSE(SELF.Sectors) SELF.Sectors &= NULL ENDShould have the Self.UpdateQueue inside the check for NULL in the next line - so I think it should read: INIClass.Kill PROCEDURE critProc CriticalProcedure CODE critProc.init(SELF.critSect) IF NOT SELF.Sectors &= NULL SELF.UpdateQueue('__Dont_Touch_Me__','Sectors',| SELF.Sectors,SELF.Sectors.Family,| SELF.Sectors.Item,SELF.Sectors.Type) !*** DISPOSE(SELF.Sectors) SELF.Sectors &= NULL END OK - I have found, I identified and corrected my GPFs in C6 -- Here is my solution... This has solved a GPF problem that has been plaguing me for the past month -- ARGhhhhhhh My Applications repeatedly failed until I made these changes. I hope it helps others with theirs. The problem is is a sporadic problem of .constructs and .destructs being called for a thread after it is terminated and certain classes are not checking themselves for valid pointers. I am not the only one who has spent hours trying to track down these weird C6 New threading model problems.
2 changes made
Currently Reads... INIClass.Destruct procedure CODE SELF.critSect.kill()Should Be changed to INIClass.Destruct procedure CODE IF NOT SELF.critSect &= NULL SELF.critSect.kill() SELF.critSect &= NULL END Today is April 1, 2025, 9:33 am This article has been viewed 35434 times. Google search has resulted in 112 hits on this article since January 25, 2004.
|
|