c asynchronous library