Skip to content

Instantly share code, notes, and snippets.

View version_bump.sh
#!/bin/bash
VERSION_H=./src/version.h
MAJOR=99
MINOR=99
PATCH=99
DRYRUN=echo
read -r -p "dryrun? [Y/n]" input
if [ "$input" == "n" ]; then
@swilly22
swilly22 / reentrant_lock.c
Created Jul 13, 2020
reentrant read lock when writer is trying to acquire lock
View reentrant_lock.c
#include <assert.h>
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
pthread_rwlock_t rwlock;
void* writer(void *arg) {
printf("in writer thread, trying to acquire write lock\n");
pthread_rwlock_wrlock(&rwlock);
View GxB_Matrix_tuple_iter.h
// Create a new matrix iterator
GrB_Info GxB_MatrixTupleIter_new
(
GxB_MatrixTupleIter **iter, // iterator to create
GrB_Matrix A // matrix being iterated
) ;
// Iterate over specific row
GrB_Info GxB_MatrixTupleIter_iterate_row
(
@swilly22
swilly22 / Redis Malloc Dockerfile
Created Feb 27, 2020
Docker image containing Redis-Server compiled with malloc instead of j-malloc
View Redis Malloc Dockerfile
#
# Redis malloc
#
# Pull base image.
FROM ubuntu:14.04
# Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
View longjmp.c
// ExecutionPlan.c
function Query_Execute() {
/* Set an exception-handling breakpoint to capture run-time errors.
* encountered_error will be set to 0 when setjmp is invoked, and will be nonzero if
* a downstream exception returns us to this breakpoint. */
QueryCtx *ctx = pthread_getspecific(_tlsQueryCtxKey);
if(!ctx->breakpoint) ctx->breakpoint = rm_malloc(sizeof(jmp_buf));
int encountered_error = setjmp(*ctx->breakpoint);
if(encountered_error) {
View threadjump.c
function Query_Execute() {
/* Call ExecutionPlan_Execute on a different thread
* and wait for it to exit */
char *error = NULL;
pthread_t thread;
pthread_create(&thread, NULL, ExecutionPlan_Execute, NULL);
pthread_join(thread, &error);
if(error != NULL) {
// Exception been thrown.
View illegaljump.c
function A() {
jump there; // Can't jump outside of current scope.
}
function B() {
there:
...
}
View trycatch.c
try {
// Perform work which might throw an exception
work();
} catch (error *e) {
reportError(e);
}
View trycatch.c
try {
// Perform work which might throw an exception
work();
} catch (error *e) {
reportError(e);
}
View throw.py
if(cond) {
raise Exception("something went wrong")
}