Author: Tobias Weber <tobias_webe...@gmx.de> Branch: c8-adaptive-trx-length-per-thread Changeset: r2060:66afe82c56ce Date: 2017-05-12 16:10 +0200 http://bitbucket.org/pypy/stmgc/changeset/66afe82c56ce/
Log: Fix nested measurement of waiting time and time in validation; fix transaction size was not exponentially reduced in case of a retry diff --git a/c8/stm/core.c b/c8/stm/core.c --- a/c8/stm/core.c +++ b/c8/stm/core.c @@ -464,7 +464,9 @@ #endif if (STM_PSEGMENT->last_commit_log_entry->next == INEV_RUNNING) { - wait_for_inevitable(); + pause_timer(); + wait_for_inevitable(); // TODO may abort!! timing event lost + continue_timer(); goto retry_from_start; /* redo _stm_validate() now */ } @@ -1165,11 +1167,10 @@ if (number_of_segments_in_use() < 2) { stm_become_inevitable(tl, "single thread mode"); } - if (repeat_count == 0) { /* else, 'nursery_mark' was already set - in abort_data_structures_from_segment_num() */ - STM_SEGMENT->nursery_mark = ((stm_char *)_stm_nursery_start + + /* TODO remove: else, 'nursery_mark' was already set + in abort_data_structures_from_segment_num() */ + STM_SEGMENT->nursery_mark = ((stm_char *)_stm_nursery_start + stm_get_transaction_length(tl)); - } return repeat_count; } _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit