
Querying thread-locking of a wave

thomas_braun
To prevent any bugs I would like to query the thread-locking state (not sure how to call it).
This is the property of a wave which gets complained about in the error message "error: Wave is in use by preemptive thread. Can't be resized or killed.".
Can be triggered with
threadsafe static Function WorkerFunc(data) WAVE data do DFREF dfr = ThreadGroupGetDFR(0, 0) if(DataFolderExistsDFR(dfr)) break endif while(1) return 1 End static Function StartMe() variable/G tgID WAVE data tgID = ThreadGroupCreate(1) ThreadStart tgID, 0, WorkerFunc(data) WAveclear data End Function Dostuff() Make/O/N=1000 data StartMe() NVAR tgID Make/O/N=(1001) data End
Of course I could use a try and catch in various places, but that feels a bit like ringing the neighbours door bell to check if the national electricity grid is working.
If you want to request it as a feature, please send a request to WaveMetrics support with an explanation of the how you would use it.
As a workaround, you could put something in the wave note before passing the wave to the thread or use some kind of naming convention indicating that the wave has been passed to a thread.
October 31, 2017 at 12:09 pm - Permalink