How am I expected to pass the int between two asynchronous function invocations when CompressMarkerLabels takes the int by-value, synchronously on the CPU thread?
For example, if I wrote:
void example(Npp16u *pSrcDst, int nSrcDstStep, NppiSize oSizeROI, Npp16u nMinVal, int *pNewNumber, NppiNorm eNorm, Npp8u *pBuffer0, Npp8u *pBuffer1, NppStreamContext nppStreamCtx)) {
int nStartingNumber;
nppiLabelMarkers_16u_C1IR_Ctx(pSrcDst, nSrcDstStep, oSizeROI, nMinVal, eNorm, &nStartingNumber, pBuffer0, nppStreamCtx);
nppiCompressMarkerLabels_16u_C1IR_Ctx(pSrcDst, nSrcDstStep, oSizeROI, nStartingNumber, pNewNumber, pBuffer1, nppStreamCtx);
}
I would expect a failure because nppiLabelMarkers_16u_C1IR_Ctx
, being asynchronous to the CPU thread, might not write to nStartingNumber
before nppiCompressMarkerLabels_16u_C1IR_Ctx
is queued on the non-blocking nppStreamCtx
.
What is the expected way to use these functions?