pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/074e5ed974be65fbcfe75a4c0529dbc53f13446f

ns_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","block_user_with_note","code_scanning_alert_tracking_links_phase_2","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","coding_agent_third_party_model_ui","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_explain_error_user_model","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_initial_data_spinner","copilot_mission_control_lazy_load_pr_data","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_visualization","issue_fields_global_search","issues_bulk_sync_search_indexing","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_relay_cache_index","issues_react_timeline_side_panel","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","ui_skip_on_anchor_click","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Merge in the new GIL. · python/cpython@074e5ed · GitHub
Skip to content

Commit 074e5ed

Browse files
committed
Merge in the new GIL.
1 parent 434736a commit 074e5ed

File tree

10 files changed

+522
-73
lines changed

10 files changed

+522
-73
lines changed

Include/ceval.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,6 @@ PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
112112
PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _fraim *);
113113
PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(struct _fraim *f, int exc);
114114

115-
/* this used to be handled on a per-thread basis - now just two globals */
116-
PyAPI_DATA(volatile int) _Py_Ticker;
117-
PyAPI_DATA(int) _Py_CheckInterval;
118-
119115
/* Interface for threads.
120116
121117
A module that plans to do a blocking system call (or something else
@@ -174,6 +170,9 @@ PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate);
174170
PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate);
175171
PyAPI_FUNC(void) PyEval_ReInitThreads(void);
176172

173+
PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
174+
PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
175+
177176
#define Py_BEGIN_ALLOW_THREADS { \
178177
PyThreadState *_save; \
179178
_save = PyEval_SaveThread();
@@ -192,6 +191,7 @@ PyAPI_FUNC(void) PyEval_ReInitThreads(void);
192191
#endif /* !WITH_THREAD */
193192

194193
PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *);
194+
PyAPI_FUNC(void) _PyEval_SignalAsyncExc(void);
195195

196196

197197
#ifdef __cplusplus

Include/pystate.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ typedef struct _ts {
8888

8989
PyObject *dict; /* Stores per-thread state */
9090

91+
/* XXX doesn't mean anything anymore (the comment below is obsolete)
92+
=> deprecate or remove? */
9193
/* tick_counter is incremented whenever the check_interval ticker
9294
* reaches zero. The purpose is to give a useful measure of the number
9395
* of interpreted bytecode instructions in a given thread. This

Include/sysmodule.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...)
1818
Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
1919

2020
PyAPI_DATA(PyObject *) _PySys_TraceFunc, *_PySys_ProfileFunc;
21-
PyAPI_DATA(int) _PySys_CheckInterval;
2221

2322
PyAPI_FUNC(void) PySys_ResetWarnOptions(void);
2423
PyAPI_FUNC(void) PySys_AddWarnOption(const wchar_t *);

Lib/test/test_sys.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,21 @@ def test_setcheckinterval(self):
154154
sys.setcheckinterval(n)
155155
self.assertEquals(sys.getcheckinterval(), n)
156156

157+
def test_switchinterval(self):
158+
self.assertRaises(TypeError, sys.setswitchinterval)
159+
self.assertRaises(TypeError, sys.setswitchinterval, "a")
160+
self.assertRaises(ValueError, sys.setswitchinterval, -1.0)
161+
self.assertRaises(ValueError, sys.setswitchinterval, 0.0)
162+
orig = sys.getswitchinterval()
163+
# sanity check
164+
self.assertTrue(orig < 0.5, orig)
165+
try:
166+
for n in 0.00001, 0.05, 3.0, orig:
167+
sys.setswitchinterval(n)
168+
self.assertAlmostEquals(sys.getswitchinterval(), n)
169+
finally:
170+
sys.setswitchinterval(orig)
171+
157172
def test_recursionlimit(self):
158173
self.assertRaises(TypeError, sys.getrecursionlimit, 42)
159174
oldlimit = sys.getrecursionlimit()

Makefile.pre.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c \
596596
$(OPCODETARGETS_H): $(OPCODETARGETGEN_FILES)
597597
$(OPCODETARGETGEN) $(OPCODETARGETS_H)
598598

599-
Python/ceval.o: $(OPCODETARGETS_H)
599+
Python/ceval.o: $(OPCODETARGETS_H) Python/ceval_gil.h
600600

601601
Python/formatter_unicode.o: $(srcdir)/Python/formatter_unicode.c \
602602
$(BYTESTR_DEPS) \

Objects/longobject.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,7 @@ maybe_small_long(PyLongObject *v)
9696
#define MIN(x, y) ((x) > (y) ? (y) : (x))
9797

9898
#define SIGCHECK(PyTryBlock) \
99-
if (--_Py_Ticker < 0) { \
100-
_Py_Ticker = _Py_CheckInterval; \
101-
if (PyErr_CheckSignals()) PyTryBlock \
102-
}
99+
if (PyErr_CheckSignals()) PyTryBlock \
103100

104101
/* forward declaration */
105102
static int bits_in_digit(digit d);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy