#include "slices_evt.h" #include #include // Event-aware version of sliceSplit (reusing it, of course) int sliceEvtSplit(slices_evt_t *slicesEvt, slice_t *initialSlice, address_t splitAt, sliceStatus_t statusBefore, sliceStatus_t statusAt, sliceStatus_t statusAfter) { int res; res=sliceSplit(slicesEvt->data, initialSlice, splitAt, statusBefore, statusAt, statusAfter); pthread_mutex_lock(&(slicesEvt->eventListenerMutex)); if ( slicesEvt->eventListener != NULL ) { switch(res) { case 3: slicesEvt->eventListener(slicesEvt, initialSlice->next->next); case 2: slicesEvt->eventListener(slicesEvt, initialSlice->next); case 1: slicesEvt->eventListener(slicesEvt, initialSlice); break; default: // No events on split errors break; } } pthread_mutex_unlock(&(slicesEvt->eventListenerMutex)); return res; }