Files
harbour-core/harbour/tests/onidle.prg
Ryszard Glab abe158c8d0 2004-04-17 12:30 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* include/hbapi.h
   * source/rtl/empty.c
   * source/rtl/idle.c
   * source/vm/arrays.c
   * source/vm/estack.c
   * source/vm/extend.c
   * source/vm/itemapi.c
      * added missing code to use HB_IT_POINTER just like
      other value's type
      You can use:
      hb_retptr( void * pointer )
      hb_parptr( ) -> void *
      hb_storptr( void * pointer, ...... )
      to return/manage pointers from low level functions.
      For example:
      p = GET_SOME_POINTER()
      ? VALTYPE(p)   //prints: 'P'
      ? p   //prints: 0x12345678

   * tests/onidle.prg
      * fixed to use values of pointer type

   * tests/tstmacro.prg
      * added code to test TYPE() function
2004-04-17 10:58:20 +00:00

77 lines
1.7 KiB
Plaintext

//
// $Id$
//
#include "hbmemory.ch"
FUNCTION MAIN
LOCAL nH1, nH2, nH3, nH4
LOCAL n:=0
LOCAL aSign:={"|", "/", "-", "\" }
LOCAL nPrev:=SECONDS()
CLS
? " Time: Memory used: Miliseconds elapsed"
?
? "Can you see it ??? :) Press any key or wait 30 seconds"
?
?
@ 10,2 SAY "Memory before TEST() call" + STR( MEMORY(HB_MEM_USED) )
TEST()
@ 11,2 SAY "Memory after TEST() and before collecting" + STR( MEMORY(HB_MEM_USED) )
HB_GCALL()
@ 12,2 SAY "Memory after collecting" + STR( MEMORY(HB_MEM_USED) )
nH1 = HB_IDLEADD( {|| DEVPOS(0,01), DEVOUT( TIME() ) } )
nH2 = HB_IDLEADD( {|| DEVPOS(0,21), TEST(), DEVOUT( MEMORY(HB_MEM_USED) ) } )
nH3 = HB_IDLEADD( {|| DEVPOS(0,41), IIF(n=4,n:=1,n++),DEVOUT(aSign[n]) } )
nH4 = HB_IDLEADD( {|| DEVPOS(0,61), DEVOUT( 1000*(SECONDS()-nPrev) ), nPrev:=SECONDS() } )
? VALTYPE(nH1), nH1, VALTYPE(nH2), nH2, VALTYPE(nH3), nH3, VALTYPE(nH4), nH4
INKEY( 30 )
IF( !EMPTY(nH3) )
@ 14,2 SAY "Delete task 3: " + HB_VALTOSTR(nH3)
HB_IDLEDEL( nH3 )
ENDIF
IF( !EMPTY(nH2) )
@ 15,2 SAY "Delete task 2: " + HB_VALTOSTR(nH2)
HB_IDLEDEL( nH2 )
ENDIF
IF( !EMPTY(nH1) )
@ 16,2 SAY "Delete task 1: " + HB_VALTOSTR(nH1)
HB_IDLEDEL( nH1 )
ENDIF
IF( !EMPTY(nH4) )
@ 17,2 SAY "Delete task 4: " + HB_VALTOSTR(nH4)
HB_IDLEDEL( nH4 )
ENDIF
@ 18,2 SAY "Memory after idle states" + STR( MEMORY(HB_MEM_USED) )
HB_GCALL()
@ 19,2 SAY "Memory after collecting" + STR( MEMORY(HB_MEM_USED) )
RETURN 1
PROC TEST()
LOCAL a, b, c
LOCAL cb
a := ARRAY( 3 )
b := ARRAY( 3 )
c := ARRAY( 3 )
a[1] :=a
a[2] :=b
a[3] :=c
b[1] :=a
b[2] :=b
b[3] :=c
c[1] :=a
c[2] :=b
c[3] :=c
cb := {|x| x:=cb}
EVAL( cb )
RETURN