@@ -11,7 +11,7 @@ msgid ""
1111msgstr ""
1212"Project-Id-Version : Python 3.14\n "
1313"Report-Msgid-Bugs-To : \n "
14- "POT-Creation-Date : 2025-06-27 14:20 +0000\n "
14+ "POT-Creation-Date : 2025-07-25 14:21 +0000\n "
1515"PO-Revision-Date : 2025-07-18 18:48+0000\n "
1616"Last-Translator : Rafael Fontenelle <rffontenelle@gmail.com>, 2025\n "
1717"Language-Team : Japanese (https://app.transifex.com/python-doc/teams/5390/ "
@@ -3293,19 +3293,30 @@ msgid ""
32933293"issue a fatal error."
32943294msgstr ""
32953295
3296- #: ../../c-api/init.rst:2447
3296+ #: ../../c-api/init.rst:2446
3297+ msgid "Returns non-zero if the mutex *m* is currently locked, zero otherwise."
3298+ msgstr ""
3299+
3300+ #: ../../c-api/init.rst:2450
3301+ msgid ""
3302+ "This function is intended for use in assertions and debugging only and "
3303+ "should not be used to make concurrency control decisions, as the lock state "
3304+ "may change immediately after the check."
3305+ msgstr ""
3306+
3307+ #: ../../c-api/init.rst:2459
32973308msgid "Python Critical Section API"
32983309msgstr ""
32993310
3300- #: ../../c-api/init.rst:2449
3311+ #: ../../c-api/init.rst:2461
33013312msgid ""
33023313"The critical section API provides a deadlock avoidance layer on top of per-"
33033314"object locks for :term:`free-threaded <free threading>` CPython. They are "
33043315"intended to replace reliance on the :term:`global interpreter lock`, and are "
33053316"no-ops in versions of Python with the global interpreter lock."
33063317msgstr ""
33073318
3308- #: ../../c-api/init.rst:2454
3319+ #: ../../c-api/init.rst:2466
33093320msgid ""
33103321"Critical sections avoid deadlocks by implicitly suspending active critical "
33113322"sections and releasing the locks during calls to :c:func:"
@@ -3315,15 +3326,24 @@ msgid ""
33153326"-- they are useful because their behavior is similar to the :term:`GIL`."
33163327msgstr ""
33173328
3318- #: ../../c-api/init.rst:2461
3329+ #: ../../c-api/init.rst:2473
3330+ msgid ""
3331+ "Variants that accept :c:type:`PyMutex` pointers rather than Python objects "
3332+ "are also available. Use these variants to start a critical section in a "
3333+ "situation where there is no :c:type:`PyObject` -- for example, when working "
3334+ "with a C type that does not extend or wrap :c:type:`PyObject` but still "
3335+ "needs to call into the C API in a manner that might lead to deadlocks."
3336+ msgstr ""
3337+
3338+ #: ../../c-api/init.rst:2479
33193339msgid ""
33203340"The functions and structs used by the macros are exposed for cases where C "
33213341"macros are not available. They should only be used as in the given macro "
33223342"expansions. Note that the sizes and contents of the structures may change in "
33233343"future Python versions."
33243344msgstr ""
33253345
3326- #: ../../c-api/init.rst:2468
3346+ #: ../../c-api/init.rst:2486
33273347msgid ""
33283348"Operations that need to lock two objects at once must use :c:macro:"
33293349"`Py_BEGIN_CRITICAL_SECTION2`. You *cannot* use nested critical sections to "
@@ -3332,11 +3352,11 @@ msgid ""
33323352"lock more than two objects at once."
33333353msgstr ""
33343354
3335- #: ../../c-api/init.rst:2474
3355+ #: ../../c-api/init.rst:2492
33363356msgid "Example usage::"
33373357msgstr "使用例::"
33383358
3339- #: ../../c-api/init.rst:2476
3359+ #: ../../c-api/init.rst:2494
33403360msgid ""
33413361"static PyObject *\n"
33423362"set_field(MyObject *self, PyObject *value)\n"
@@ -3348,7 +3368,7 @@ msgid ""
33483368"}"
33493369msgstr ""
33503370
3351- #: ../../c-api/init.rst:2485
3371+ #: ../../c-api/init.rst:2503
33523372msgid ""
33533373"In the above example, :c:macro:`Py_SETREF` calls :c:macro:`Py_DECREF`, which "
33543374"can call arbitrary code through an object's deallocation function. The "
@@ -3358,61 +3378,100 @@ msgid ""
33583378"`PyEval_SaveThread`."
33593379msgstr ""
33603380
3361- #: ../../c-api/init.rst:2493
3381+ #: ../../c-api/init.rst:2511
33623382msgid ""
33633383"Acquires the per-object lock for the object *op* and begins a critical "
33643384"section."
33653385msgstr ""
33663386
3367- #: ../../c-api/init.rst:2496 ../../c-api/init.rst:2510
3368- #: ../../c-api/init.rst:2525 ../../c-api/init.rst:2539
3387+ #: ../../c-api/init.rst:2514 ../../c-api/init.rst:2528
3388+ #: ../../c-api/init.rst:2545 ../../c-api/init.rst:2560
3389+ #: ../../c-api/init.rst:2574 ../../c-api/init.rst:2591
33693390msgid "In the free-threaded build, this macro expands to::"
33703391msgstr ""
33713392
3372- #: ../../c-api/init.rst:2498
3393+ #: ../../c-api/init.rst:2516
33733394msgid ""
33743395"{\n"
33753396" PyCriticalSection _py_cs;\n"
33763397" PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))"
33773398msgstr ""
33783399
3379- #: ../../c-api/init.rst:2502 ../../c-api/init.rst:2531
3400+ #: ../../c-api/init.rst:2520 ../../c-api/init.rst:2566
33803401msgid "In the default build, this macro expands to ``{``."
33813402msgstr ""
33823403
3383- #: ../../c-api/init.rst:2508
3404+ #: ../../c-api/init.rst:2526
3405+ msgid "Locks the mutex *m* and begins a critical section."
3406+ msgstr ""
3407+
3408+ #: ../../c-api/init.rst:2530
3409+ msgid ""
3410+ "{\n"
3411+ " PyCriticalSection _py_cs;\n"
3412+ " PyCriticalSection_BeginMutex(&_py_cs, m)"
3413+ msgstr ""
3414+
3415+ #: ../../c-api/init.rst:2534
3416+ msgid ""
3417+ "Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION`, there is no cast for "
3418+ "the argument of the macro - it must be a :c:type:`PyMutex` pointer."
3419+ msgstr ""
3420+
3421+ #: ../../c-api/init.rst:2537 ../../c-api/init.rst:2583
3422+ msgid "On the default build, this macro expands to ``{``."
3423+ msgstr ""
3424+
3425+ #: ../../c-api/init.rst:2543
33843426msgid "Ends the critical section and releases the per-object lock."
33853427msgstr ""
33863428
3387- #: ../../c-api/init.rst:2512
3429+ #: ../../c-api/init.rst:2547
33883430msgid ""
33893431" PyCriticalSection_End(&_py_cs);\n"
33903432"}"
33913433msgstr ""
33923434
3393- #: ../../c-api/init.rst:2515 ../../c-api/init.rst:2544
3435+ #: ../../c-api/init.rst:2550 ../../c-api/init.rst:2596
33943436msgid "In the default build, this macro expands to ``}``."
33953437msgstr ""
33963438
3397- #: ../../c-api/init.rst:2521
3439+ #: ../../c-api/init.rst:2556
33983440msgid ""
33993441"Acquires the per-objects locks for the objects *a* and *b* and begins a "
34003442"critical section. The locks are acquired in a consistent order (lowest "
34013443"address first) to avoid lock ordering deadlocks."
34023444msgstr ""
34033445
3404- #: ../../c-api/init.rst:2527
3446+ #: ../../c-api/init.rst:2562
34053447msgid ""
34063448"{\n"
34073449" PyCriticalSection2 _py_cs2;\n"
34083450" PyCriticalSection2_Begin(&_py_cs2, (PyObject*)(a), (PyObject*)(b))"
34093451msgstr ""
34103452
3411- #: ../../c-api/init.rst:2537
3453+ #: ../../c-api/init.rst:2572
3454+ msgid "Locks the mutexes *m1* and *m2* and begins a critical section."
3455+ msgstr ""
3456+
3457+ #: ../../c-api/init.rst:2576
3458+ msgid ""
3459+ "{\n"
3460+ " PyCriticalSection2 _py_cs2;\n"
3461+ " PyCriticalSection2_BeginMutex(&_py_cs2, m1, m2)"
3462+ msgstr ""
3463+
3464+ #: ../../c-api/init.rst:2580
3465+ msgid ""
3466+ "Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, there is no cast for "
3467+ "the arguments of the macro - they must be :c:type:`PyMutex` pointers."
3468+ msgstr ""
3469+
3470+ #: ../../c-api/init.rst:2589
34123471msgid "Ends the critical section and releases the per-object locks."
34133472msgstr ""
34143473
3415- #: ../../c-api/init.rst:2541
3474+ #: ../../c-api/init.rst:2593
34163475msgid ""
34173476" PyCriticalSection2_End(&_py_cs2);\n"
34183477"}"
0 commit comments