I think this would be clearer if the function was called directly, since it's the first & most basic example, i.e. remove `thread` and replace register_callback with

```c
typedef int32_t (*rust_callback)(int32_t);
int32_t call_callback(rust_callback callback) {
    return callback(1);
}
```