Example #1
0
static void * go2( void * arg) {
    lladdIterator_t * it = (lladdIterator_t *) arg;

    pthread_mutex_lock(&mutex);
    pthread_mutex_unlock(&mutex);

    int itRet = 0;
    while((itRet = Titerator_next(-1, it))) {

        lladdFifo_t ** dirtyFifo_ptr;
        lladdFifo_t *** bdirtyFifo_ptr = &dirtyFifo_ptr;
        lladdFifo_t *  dirtyFifo;
        int dirtyFifoSize = Titerator_value(-1, it, (byte**)bdirtyFifo_ptr);

        dirtyFifo = * dirtyFifo_ptr;

        assert(dirtyFifo->iterator->type >= 0 && dirtyFifo->iterator->type < MAX_ITERATOR_TYPES);

        Titerator_tupleDone(-1, it);

        assert(dirtyFifoSize == sizeof(lladdFifo_t *));
        assert(dirtyFifo->iterator->type >= 0 && dirtyFifo->iterator->type < MAX_ITERATOR_TYPES);

        trygo(dirtyFifo->iterator);
    }
    return NULL;
}
Example #2
0
static void * trygo( void * arg) {
    lladdIterator_t * it = (lladdIterator_t *) arg;

    pthread_mutex_lock(&mutex);
    pthread_mutex_unlock(&mutex);

    int itRet = 0;
    assert(it->type >= 0 && it->type < MAX_ITERATOR_TYPES);
    while((itRet = Titerator_tryNext(-1, it))) {
        assert(it->type >= 0 && it->type < MAX_ITERATOR_TYPES);

        byte * key, * value;
        int keySize, valueSize;

        keySize   = Titerator_key  (-1, it, &key);
        valueSize = Titerator_value(-1, it, &value);

        assert(keySize == sizeof(lsn_t));
        LogEntry * e = (LogEntry*)value;
        linearHash_remove_arg * arg = (linearHash_remove_arg*)stasis_log_entry_update_args_ptr(e);

        assert(arg->keySize == sizeof(lsn_t));
        assert(arg->valueSize == sizeof(char));

        lsn_t i = *(lsn_t*)(arg+1);
        array[i]++;
        assert(*(lsn_t*)key == i);
        assert(array[i] == 1);

        Titerator_tupleDone(-1, it);

    }
    return NULL;
}
Example #3
0
JNIEXPORT void JNICALL Java_stasis_jni_Stasis_iterator_1tuple_1done
  (JNIEnv *e, jclass c, jlong xid, jbyteArray jbait) {
  size_t sz;
  lladdIterator_t** it = (lladdIterator_t**)bytes_jbyteArray(e,jbait,&sz);

  Titerator_tupleDone(xid, *it);
}