2012/2/22 Zoltán Herczeg <[email protected]>:
> Hi,
>
> different names are intentional, although we probably should emphasize it 
> more.
>
> JIT stack: returned by pcre_jit_stack_alloc(). Must be freed by the user. 
> When pcre_exec runs and uses a particular JIT stack, that must not be used by 
> other threads until pcre_exec returns (user responsibility). You can directly 
> assign a JIT stack to a pattern or return it through the callback. The JIT 
> stack is used only during pcre_exec, never any other time.
>
> machine stack: when a JIT stack is not assigned or the callback returns with 
> NULL, a function is called which defines a local variable: pcre_uint8 
> local_area[LOCAL_SPACE_SIZE] This area is used by the JIT in this case. 
> LOCAL_SPACE_SIZE is 32K by default. So this is thread safe.

Hi Zoltán, thanks for the explaination.
That was exactly what I got reading "between the lines" of the
manpages -- that is, matching with JIT is thread-safe even without
setting up JIT stacks. The fact that the memory is allocated on each's
thread stack makes that thread-safe by design.

Cheers,
-- 
Giuseppe D'Angelo

-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to