MAL property for thread-unsafe function

Niels Nes Niels.Nes at
Thu Mar 5 20:50:56 CET 2015

On Wed, Mar 04, 2015 at 04:40:36PM +0100, Roberto Cornacchia wrote:
> Hello,
> I have a function definition
> command batstemmer.stem(terms:bat[:oid,:str], stemmer_name:str):bat
> [:oid,:str]
> address CMDbatstem
> comment "Wrapper for snowball stemmer";
> which internally uses the snowball stemmer (http://
> When the bat to be stemmed is large enough, mitosis will split it into
> chunks and call the function "stem" on each chunk, possibly in
> parallel.
> Problem is, the snowball stemmer implementation appears to be
> thread-unsafe, which causes a SIGSEGV.
> Indeed, using the no_mitosis_pipe solves the issue. However, this
> solution is suboptimal.
> Another solution I found is to mark the mal signature as {unsafe}. This
> works, although it does something a bit silly: it splits the table into
> chunks, then repacks everything, and finally runs my function on the
> re-packed bat (basically wasting effort on a useless split + repack).
> Now, my question is: is there a more focussed property to use? {unsafe}
> implies thread-unsafe, but it is actually stronger than that. For
> example, it also implies that there might be side-effects. Therefore,
> the result cannot be recycled. In my case, instead, the result is
> perfectly safe to be reused.
> Thanks for any tip.
> Roberto

The easiest solution is to add a mutex in the wrapper function.
Unsafe indeed flags a function for the dataflow optimizer (ie isn't
run concurrently). 


> _______________________________________________
> developers-list mailing list
> developers-list at

Niels Nes, Manager ITF, Centrum Wiskunde & Informatica (CWI)
Science Park 123, 1098 XG Amsterdam, The Netherlands
room L3.14,  phone ++31 20 592-4098 	sip:4098 at
url:	e-mail: Niels.Nes at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <>

More information about the developers-list mailing list