diff options
author | Yuta Saito <kateinoigakukun@gmail.com> | 2022-09-24 03:36:04 +0900 |
---|---|---|
committer | Yuta Saito <kateinoigakukun@gmail.com> | 2022-09-26 12:03:40 +0900 |
commit | e3cc1a6cae0e6c88c04cd54c3afa3c022bb6772c (patch) | |
tree | a3fdbda1f745e9b8ebb405fef0e0485715036b5d /test | |
parent | d89f8a046753e2f166ee252510aadf1579dbcd63 (diff) |
Initialize Objective-C classes before fork() for macOS 13
Since macOS 13, CFString family API used in
`rb_str_append_normalized_ospath` may internally use Objective-C classes
(`NSTaggedPointerString` and `NSPlaceholderMutableString`) for small strings.
On the other hand, Objective-C classes should not be used for the first
time in a `fork()`'ed but not `exec()`'ed process. Violations for this rule
can result deadlock during class initialization, so Objective-C runtime
conservatively crashes on such cases by default.
Therefore, we need to use CFString API to initialize Objective-C classes
used internally *before* `fork()`.
For more details, see https://bugs.ruby-lang.org/issues/18912
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6426
Diffstat (limited to 'test')
0 files changed, 0 insertions, 0 deletions