On Mon, 07 Dec 2009, Xavi wrote:

Hi,

> Maybe you need to put this before .-
> #xcommand BEGIN SEQUENCE => BEGIN SEQUENCE WITH { |oErr| Break( oErr ) }
> or better yet .-
> #xcommand TRY              => BEGIN SEQUENCE WITH t_bBreak
> #xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
> #xcommand FINALLY          => ALWAYS
> 
> THREAD STATIC t_bBreak := { |oErr| Break( oErr ) }

In this context it's not necessary to use thread static variable.
Harbour gives full read synchronization in accessing complex variables
so it's enough to use:

   STATIC s_bBreak := { |oErr| Break( oErr ) }

It's the most efficient way because we eliminate creating new code block
each time BEGIN SEQUENCE WITH ...  is used. Anyhow the overhead caused
by creating new codeblock is very small so it should bot be big problem
and above improvement is usable only if BEGIN SEQUENCE WITH ... is called
millions times in some loop.

best regards,
Przemek
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to