Skip to content

Instantly share code, notes, and snippets.

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
@oconnor663
oconnor663 / example.c
Last active February 27, 2023 03:27
inner/outer RAII in C
#include <errno.h>
#include <stdio.h>
// We want a function that creates a couple files. Here's the naive approach:
int hardcoded_cleanup(const char *path1, const char *path2) {
FILE *file1 = fopen(path1, "w");
if (file1 == NULL) {
return errno;
}
0eNrtV8tu4yAU/ZWItVMBJn4tu+5yZjUaRU6CLDQOWIDbRlX+vWC3bqZNbK69q7qyAHM4nPs49gva1S1vtJB2u1PqHypePmYMKv5cDP2a2CvZTxtRybL2c/bUcFQgYfkRRUiWRz/iz43mxqytLqVplLbrHa8tOkdIyAN/RgU5R8tBaADIvtSVWj+VlZIXO+Pz3whxaYUVvL9QNzhtZXvcce34TbGIUKOM2+5g3dH+RoTcbSJ0QkVyt3EnHYTm+36deZ6fDqBfDjBNLax1a9egO+A0BDiewZxCmDMQ8zic+QYEjDvgLAQ4GYAnpcD5mxT5Z+DkCnC6IEuCmGfhzAfgIOY5ABhDgH1cAFFk4VoQAuAcgzjTBTUTxj0GcKcg7gyAzG4ju37YNc7iouNHqC4dlJt7UOWhC+Aj16bbQTPCUpanSUpwskk+Wiv2JH9cYzr3MR5aY5A/TIU3z291cRpkE2NU6RhVBq8ejC+4BlnBNORN+01GLSHk+mzs+jNMAFNIqLIZB8Tj+uYzIBlEX5ANDJmbT4tBvtZY66pTV1q552S+9Z3vreZVa5vWt4YQRxjLDwLgHy+olux6NAmbpQkFagL6PhsyMESTZEEJ3dIknaUJA2qSLSikjvm47/6Wdbjzkmtg6+6/7n8nF7JalfKw6tH96NeTWt27Lat7x9m417+XZ5cu+R759v0LZUTM8yvFIgJz
@oconnor663
oconnor663 / test.py
Last active October 27, 2022 20:18
A demonstration of GIL-releasing hashing leading to a data race in Python
#! /usr/bin/env python3
import hashlib
import threading
def hash_buf(buf):
return hashlib.sha256(buf).hexdigest()
@oconnor663
oconnor663 / bad_git.sh
Created October 4, 2017 17:02
edit a git commit without changing the hash
#! /bin/bash
d="$(mktemp -d)"
# Make a git repo with one file in it.
mkdir "$d/good"
cd "$d/good"
git init
echo good > file.txt
git add -A
@oconnor663
oconnor663 / my_mutex.cpp
Created July 23, 2022 00:26
Mutex as a container in C++
#include <iostream>
#include <mutex>
#include <thread>
#include <vector>
template <typename T> class MyMutex;
template <typename T> class MyMutexGuard;
template <typename T> class MyMutex {
friend class MyMutexGuard<T>;
@oconnor663
oconnor663 / early_bao_talk_subtitles.ass
Created May 13, 2022 04:00
early Bao video subtitles
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: TV.601
PlayResX: 1280
PlayResY: 720