2012-10-15 01:58 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/gtwvg/genrc.prg
  * contrib/gtwvg/tests/dyndlgs.prg
  * contrib/gtwvg/tests/tbrowser.prg
  * contrib/xhb/hbcomprs.prg
  * src/debug/dbgtmenu.prg
  * src/debug/debugger.prg
  * tests/mt/mttest05.prg
  * tests/mt/mttest12.prg
    * renamed THREAD STATIC vars to start with 't_'
    * minor formatting

  * tests/mousetst.prg
    * END IF -> ENDIF
This commit is contained in:
Viktor Szakats
2012-10-15 00:00:51 +00:00
parent 02c00a7b13
commit 0ff85dde6e
10 changed files with 101 additions and 86 deletions

View File

@@ -16,6 +16,21 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-10-15 01:58 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/gtwvg/genrc.prg
* contrib/gtwvg/tests/dyndlgs.prg
* contrib/gtwvg/tests/tbrowser.prg
* contrib/xhb/hbcomprs.prg
* src/debug/dbgtmenu.prg
* src/debug/debugger.prg
* tests/mt/mttest05.prg
* tests/mt/mttest12.prg
* renamed THREAD STATIC vars to start with 't_'
* minor formatting
* tests/mousetst.prg
* END IF -> ENDIF
2012-10-15 01:39 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbmisc/hb_f.c
+ added MT compatibility by moving static vars to a structure

View File

@@ -76,15 +76,15 @@
//
THREAD STATIC s_oCrt := NIL
THREAD STATIC t_oCrt := NIL
//
EXIT PROCEDURE KillGTChildren()
EXIT PROCEDURE KillGTChildren()
IF HB_ISOBJECT( s_oCrt ) .AND. __objGetClsName( s_oCrt ) == "WVGCRT" .AND. s_oCrt:isGT
s_oCrt:destroy()
s_oCrt := NIL
IF HB_ISOBJECT( t_oCrt ) .AND. __objGetClsName( t_oCrt ) == "WVGCRT" .AND. t_oCrt:isGT
t_oCrt:destroy()
t_oCrt := NIL
ENDIF
RETURN
@@ -93,19 +93,19 @@
FUNCTION WvgSetAppWindow( oCrt )
LOCAL ooCrt := s_oCrt
LOCAL ooCrt := t_oCrt
IF Empty( oCrt )
IF Empty( s_oCrt )
s_oCrt := WvgCrt():new()
s_oCrt:hWnd := Wvt_GetWindowHandle()
s_oCrt:pWnd := Win_N2P( s_oCrt:hWnd )
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, {| nEvent, ... | s_oCrt:notifier( nEvent, ... ) } )
s_oCrt:isGT := .T.
RETURN s_oCrt
IF Empty( t_oCrt )
t_oCrt := WvgCrt():new()
t_oCrt:hWnd := Wvt_GetWindowHandle()
t_oCrt:pWnd := Win_N2P( t_oCrt:hWnd )
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, {| nEvent, ... | t_oCrt:notifier( nEvent, ... ) } )
t_oCrt:isGT := .T.
RETURN t_oCrt
ENDIF
ELSE
s_oCrt := oCrt
t_oCrt := oCrt
ENDIF
RETURN ooCrt

View File

@@ -142,7 +142,7 @@ FUNCTION DynDlgProc( hDlg, nMsg, wParam, lParam )
LOCAL lClicked, cPrompt, nIndex, hFont, aHFonts
Switch ( nMsg )
SWITCH nMsg
CASE WM_TIMER
WVG_SetDlgItemText( hDlg, ID_EDT_TIME, Time() )
@@ -269,7 +269,7 @@ FUNCTION DynDlgProc( hDlg, nMsg, wParam, lParam )
/* cText := */
WVG_GetDlgItemText( hDlg, ID_MLE )
EXIT
END
ENDSWITCH
RETURN 0
@@ -326,7 +326,7 @@ FUNCTION DlgSlideShow()
FUNCTION DlgSlideShowProc( hDlg, nMsg, wParam, lParam )
THREAD STATIC nSlide := 1
THREAD STATIC t_nSlide := 1
HB_SYMBOL_UNUSED( wParam )
HB_SYMBOL_UNUSED( lParam )
@@ -334,22 +334,22 @@ FUNCTION DlgSlideShowProc( hDlg, nMsg, wParam, lParam )
SWITCH nMsg
CASE WM_INITDIALOG
DrawSlide( hDlg, nSlide )
DrawSlide( hDlg, t_nSlide )
EXIT
CASE WM_PAINT
DrawSlide( hDlg, nSlide )
DrawSlide( hDlg, t_nSlide )
EXIT
CASE WM_TIMER
nSlide++
IF nSlide > Len( t_aSlides )
nSlide := 1
t_nSlide++
IF t_nSlide > Len( t_aSlides )
t_nSlide := 1
ENDIF
DrawSlide( hDlg, nSlide )
DrawSlide( hDlg, t_nSlide )
EXIT
END
ENDSWITCH
RETURN 0

View File

@@ -79,8 +79,8 @@ FUNCTION ExecBrowser( oCrt )
STATIC nStyle := 0
THREAD STATIC nFactor := 200
THREAD STATIC lActiveX := .F.
THREAD STATIC t_nFactor := 200
THREAD STATIC t_lActiveX := .F.
IF oCrt == NIL
cScr := SaveScreen( 0, 0, MaxRow(), MaxCol() )
@@ -151,7 +151,7 @@ FUNCTION ExecBrowser( oCrt )
hb_DispOutAt( oBrowse:nTop - 2, oBrowse:nleft - 2, PadC( cFileDbf, oBrowse:nRight - oBrowse:nLeft + 5 ), "W+/B*" )
oCom := BrwBuildActiveX( oCrt, oBrowse )
oChk := BrwBuildCheckBox( oCrt, oBrowse, @lActiveX )
oChk := BrwBuildCheckBox( oCrt, oBrowse, @t_lActiveX )
oSLE := BrwBuildSLE( oCrt, oBrowse )
aNvg := BrwBuildNvg( oCrt, oBrowse, oCom )
oLBx := BrwBuildListBox( oCrt, oBrowse )
@@ -176,12 +176,12 @@ FUNCTION ExecBrowser( oCrt )
DO CASE
CASE nKey == K_F12
nFactor--
hb_gtInfo( HB_GTI_SPEC, HB_GTS_FACTOR, nFactor )
t_nFactor--
hb_gtInfo( HB_GTI_SPEC, HB_GTS_FACTOR, t_nFactor )
CASE nKey == K_F11
nFactor++
hb_gtInfo( HB_GTI_SPEC, HB_GTS_FACTOR, nFactor )
t_nFactor++
hb_gtInfo( HB_GTI_SPEC, HB_GTS_FACTOR, t_nFactor )
CASE nKey == K_F6
hb_gtInfo( HB_GTI_RESIZABLE, .F. )
@@ -208,10 +208,10 @@ FUNCTION ExecBrowser( oCrt )
CASE BrwHandleKey( oBrowse, nKey, @lEnd )
CASE nKey == HB_K_RESIZE
BrwHandleResize( oCrt, oBrowse, oVBar, oHBar, oCom, oSLE, oLBx, oTre, oChk, aNvg, oIdx, lActiveX, cFileDbf )
BrwHandleResize( oCrt, oBrowse, oVBar, oHBar, oCom, oSLE, oLBx, oTre, oChk, aNvg, oIdx, t_lActiveX, cFileDbf )
ENDCASE
END
ENDDO
Wvt_SetPen( 0 )
WvtSetBlocks( aLastPaint )
@@ -899,7 +899,7 @@ FUNCTION Vou_BrwSetVScroll( mp1, oBrowse )
STATIC FUNCTION BrwOnEvent( oWvtBrw, cPaintID, oBrowse, nKey )
LOCAL lRet := .T. , lRefAll := .F.
LOCAL lRet := .T., lRefAll := .F.
HB_SYMBOL_UNUSED( cPaintID )

View File

@@ -54,7 +54,7 @@
#include "hbzlib.ch"
THREAD STATIC s_nLastError := HB_ZLIB_RES_OK
THREAD STATIC t_nLastError := HB_ZLIB_RES_OK
/****** COMPRESSOR WRAPPER *****
* HB_COMPRESS( cSource [,nSourceLen ] ) --> cDest
@@ -109,22 +109,22 @@ FUNCTION HB_COMPRESS( xPar1, xPar2, xPar3, xPar4, xPar5 )
IF lReturnByRef
IF HB_ISNUMERIC( xPar1 )
xPar4 := HB_ZCOMPRESS( cSource, nDestLen, @s_nLastError, nComprFactor )
xPar4 := HB_ZCOMPRESS( cSource, nDestLen, @t_nLastError, nComprFactor )
IF ! HB_ISSTRING( xPar4 )
xPar4 := ""
ENDIF
xPar5 := Len( xPar4 )
ELSE
xPar3 := HB_ZCOMPRESS( cSource, nDestLen, @s_nLastError, nComprFactor )
xPar3 := HB_ZCOMPRESS( cSource, nDestLen, @t_nLastError, nComprFactor )
IF ! HB_ISSTRING( xPar3 )
xPar3 := ""
ENDIF
xPar4 := Len( xPar3 )
ENDIF
RETURN s_nLastError
RETURN t_nLastError
ENDIF
RETURN HB_ZCOMPRESS( cSource, nDestLen, @s_nLastError, nComprFactor )
RETURN HB_ZCOMPRESS( cSource, nDestLen, @t_nLastError, nComprFactor )
/****** DECOMPRESSOR WRAPPER *****
* HB_UNCOMPRESS( nDestLen, cSource [, nSourceLen ] ) --> cDest
@@ -153,17 +153,17 @@ FUNCTION HB_UNCOMPRESS( nDestLen, cSource, nSourceLen, /* @ */ cDest )
ENDIF
IF PCount() >= 4
cDest := HB_ZUNCOMPRESS( cSource, nDestLen, @s_nLastError )
RETURN s_nLastError
cDest := HB_ZUNCOMPRESS( cSource, nDestLen, @t_nLastError )
RETURN t_nLastError
ENDIF
RETURN HB_ZUNCOMPRESS( cSource, nDestLen, @s_nLastError )
RETURN HB_ZUNCOMPRESS( cSource, nDestLen, @t_nLastError )
/*********************************
* HB_COMPRESSERROR() --> nError
*/
FUNCTION HB_COMPRESSERROR()
RETURN s_nLastError
RETURN t_nLastError
/*********************************
* HB_COMPRESSERRORDESC( nErrorCode ) --> cDesc

View File

@@ -109,13 +109,13 @@ ENDCLASS
METHOD aMenus( xNewVal ) CLASS HBDbMenu
THREAD STATIC ts_aMenus
THREAD STATIC t_aMenus
IF PCount() > 0
ts_aMenus := xNewVal
t_aMenus := xNewVal
ENDIF
RETURN ts_aMenus
RETURN t_aMenus
METHOD New() CLASS HBDbMenu

View File

@@ -118,7 +118,7 @@
#define DEBUGGER_MAXROW 22
#define DEBUGGER_MAXCOL 77
THREAD STATIC s_oDebugger
THREAD STATIC t_oDebugger
PROCEDURE __dbgAltDEntry()
@@ -142,22 +142,22 @@ PROCEDURE __dbgEntry( nMode, uParam1, uParam2, uParam3, uParam4, uParam5 )
CASE nMode == HB_DBG_ACTIVATE
IF ( lStartup := ( s_oDebugger == NIL ) )
s_oDebugger := HBDebugger():New()
s_oDebugger:pInfo := uParam1
IF ( lStartup := ( t_oDebugger == NIL ) )
t_oDebugger := HBDebugger():New()
t_oDebugger:pInfo := uParam1
ENDIF
s_oDebugger:nProcLevel := uParam2
s_oDebugger:aCallStack := uParam3
s_oDebugger:aModules := uParam4
s_oDebugger:aBreakPoints := uParam5
t_oDebugger:nProcLevel := uParam2
t_oDebugger:aCallStack := uParam3
t_oDebugger:aModules := uParam4
t_oDebugger:aBreakPoints := uParam5
IF lStartup
IF s_oDebugger:lRunAtStartup
IF t_oDebugger:lRunAtStartup
__dbgSetGo( uParam1 )
RETURN
ENDIF
ENDIF
s_oDebugger:lGo := .F.
s_oDebugger:Activate()
t_oDebugger:lGo := .F.
t_oDebugger:Activate()
ENDCASE
@@ -378,7 +378,7 @@ ENDCLASS
METHOD New() CLASS HBDebugger
s_oDebugger := Self
t_oDebugger := Self
/* default the search path for files to the current directory
that way if the source is in the same directory it will still be found even if the application
@@ -1294,7 +1294,7 @@ METHOD HandleEvent() CLASS HBDebugger
DO CASE
CASE nKey == K_ALT_X
s_oDebugger:Quit()
t_oDebugger:Quit()
CASE ::oPullDown:IsOpen()
::oPullDown:ProcessKey( nKey )
@@ -1356,7 +1356,7 @@ METHOD HandleEvent() CLASS HBDebugger
/*
CASE nKey == K_ESC
::RestoreAppStatus()
s_oDebugger := NIL
t_oDebugger := NIL
s_lExit := .T.
DispEnd()
::Exit()
@@ -2003,7 +2003,7 @@ METHOD Quit() CLASS HBDebugger
::Exit()
::Hide()
__dbgSetQuit( ::pInfo )
s_oDebugger := NIL
t_oDebugger := NIL
__QUIT()
@@ -3202,11 +3202,11 @@ STATIC PROCEDURE SetsKeyPressed( nKey, oBrwSets, nSets, oWnd, cCaption, bEdit )
FUNCTION __DbgColors()
RETURN s_oDebugger:GetColors()
RETURN t_oDebugger:GetColors()
FUNCTION __Dbg()
RETURN s_oDebugger
RETURN t_oDebugger
STATIC PROCEDURE RefreshVarsS( oBrowse )

View File

@@ -149,15 +149,15 @@ PROCEDURE TEST2( nR, nC )
@ nR + 10, nC SAY "| mouse |"
@ nR + 11, nC SAY "+-------------------+"
SET( _SET_EVENTMASK, INKEY_ALL )
Set( _SET_EVENTMASK, INKEY_ALL )
IF ! Empty( cSkip )
IF Upper( cSkip ) == "BREAK"
SetCancel( .T. )
ELSE
SetCancel( .F. )
END IF
END IF
ENDIF
ENDIF
MUPDATE()

View File

@@ -15,12 +15,12 @@
#define N_COUNT 1000000
#define N_INIT 100
thread static s_var := N_INIT
thread static t_var := N_INIT
proc main()
local aThreads := {}, i, nSum
? Version()
s_var := N_INIT * 25
t_var := N_INIT * 25
? "Starting threads: "
for i := 1 to N_THREADS
aadd( aThreads, hb_threadStart( @thFunc() ) )
@@ -38,6 +38,6 @@ return
func thFunc()
local i
for i := 1 to N_COUNT
++s_var
++t_var
next
return s_var
return t_var

View File

@@ -11,17 +11,17 @@
*
*/
thread static s_var1 := { "A", "B", "C" }
thread static s_var2 := { "A" => "qwe", "B" => "asd" }
thread static s_var3 := 1235.567
thread static s_var4 := "text"
thread static t_var1 := { "A", "B", "C" }
thread static t_var2 := { "A" => "qwe", "B" => "asd" }
thread static t_var3 := 1235.567
thread static t_var4 := "text"
proc main()
testvar("initial main thread values")
aadd( s_var1, "X" )
s_var2[ "X" ] := "zxc"
s_var3 += 100000
s_var4 := upper( s_var4 )
aadd( t_var1, "X" )
t_var2[ "X" ] := "zxc"
t_var3 += 100000
t_var4 := upper( t_var4 )
testvar("modified main thread values")
hb_threadJoin( hb_threadStart( @thFunc() ) )
testvar("modified main thread values")
@@ -29,19 +29,19 @@ return
proc testvar( cMsg )
? cMsg
? "s_var1:", hb_valtoExp( s_var1 )
? "s_var2:", hb_valtoExp( s_var2 )
? "s_var3:", hb_valtoExp( s_var3 )
? "s_var4:", hb_valtoExp( s_var4 )
? "t_var1:", hb_valtoExp( t_var1 )
? "t_var2:", hb_valtoExp( t_var2 )
? "t_var3:", hb_valtoExp( t_var3 )
? "t_var4:", hb_valtoExp( t_var4 )
wait
?
return
proc thFunc()
testvar("initial child thread values")
aadd( s_var1, "Y" )
s_var2[ "Y" ] := "abc"
s_var3 -= 500000
s_var4 += " CHANGED"
aadd( t_var1, "Y" )
t_var2[ "Y" ] := "abc"
t_var3 -= 500000
t_var4 += " CHANGED"
testvar("modified child thread values")
return