New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix RPCTimerInterface ordering issue #7317

Merged
merged 2 commits into from Jan 8, 2016

Conversation

Projects
None yet
3 participants
@jonasschnelli
Member

jonasschnelli commented Jan 8, 2016

Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads.

Agree that using the order of timerInterfaces is not the best way of identifying the type of the timer interface.

fixes #7316

@jonasschnelli jonasschnelli added the GUI label Jan 8, 2016

@MarcoFalke

This comment has been minimized.

Show comment
Hide comment
@MarcoFalke

MarcoFalke Jan 8, 2016

Member

Tested ACK 9490ec3, indeed fixes #7316 (comment).

Tag "Backport" missing?

Member

MarcoFalke commented Jan 8, 2016

Tested ACK 9490ec3, indeed fixes #7316 (comment).

Tag "Backport" missing?

@jonasschnelli

This comment has been minimized.

Show comment
Hide comment
@jonasschnelli

jonasschnelli Jan 8, 2016

Member

Discussed with @laanwj on IRC and i'll try now to remove the set of timers, I think having only one timer makes things more stable for future changes.

Member

jonasschnelli commented Jan 8, 2016

Discussed with @laanwj on IRC and i'll try now to remove the set of timers, I think having only one timer makes things more stable for future changes.

@laanwj

This comment has been minimized.

Show comment
Hide comment
@laanwj

laanwj Jan 8, 2016

Member

Concept ACK, but the change in logic needs to be more explicit. This is too fragile against refactors/reorders (at least for master, for 0.12 as a quick last minute patch it'd be acceptable...).
(as discussed on IRC)

Member

laanwj commented Jan 8, 2016

Concept ACK, but the change in logic needs to be more explicit. This is too fragile against refactors/reorders (at least for master, for 0.12 as a quick last minute patch it'd be acceptable...).
(as discussed on IRC)

@jonasschnelli

This comment has been minimized.

Show comment
Hide comment
@jonasschnelli

jonasschnelli Jan 8, 2016

Member

Added a commit that removes the std::vector for RPCTimerInterfaces (just one pointer now). Also added a function (RPCSetTimerInterfaceIfUnset) that prevents setting a Qt bases timer interface if already only is set.
Not meant for back porting (will open "the" simple fix for 0.12).

Member

jonasschnelli commented Jan 8, 2016

Added a commit that removes the std::vector for RPCTimerInterfaces (just one pointer now). Also added a function (RPCSetTimerInterfaceIfUnset) that prevents setting a Qt bases timer interface if already only is set.
Not meant for back porting (will open "the" simple fix for 0.12).

@laanwj

View changes

Show outdated Hide outdated src/rpcserver.h
@laanwj

This comment has been minimized.

Show comment
Hide comment
@laanwj

laanwj Jan 8, 2016

Member

Nice, uTACK

Member

laanwj commented Jan 8, 2016

Nice, uTACK

Fix RPCTimerInterface ordering issue
Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads.
@laanwj

View changes

Show outdated Hide outdated src/qt/rpcconsole.cpp

@laanwj laanwj merged commit 8a7f000 into master Jan 8, 2016

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

laanwj added a commit that referenced this pull request Jan 8, 2016

Merge pull request #7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

@jonasschnelli jonasschnelli deleted the 2016/01/qt_thread branch Jan 21, 2016

kyuupichan referenced this pull request in kyuupichan/BitcoinUnlimited Mar 12, 2017

Merge pull request #7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

cddjr referenced this pull request in cddjr/BitcoinUnlimited Apr 6, 2017

Merge pull request #7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

codablock added a commit to codablock/dash that referenced this pull request Sep 16, 2017

Merge pull request bitcoin#7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

codablock added a commit to codablock/dash that referenced this pull request Sep 19, 2017

Merge pull request bitcoin#7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

codablock added a commit to codablock/dash that referenced this pull request Dec 9, 2017

Merge pull request bitcoin#7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

codablock added a commit to codablock/dash that referenced this pull request Dec 9, 2017

Merge pull request bitcoin#7317
8a7f000 [RPC] remove the option of having multiple timer interfaces (Jonas Schnelli)
db198d5 Fix RPCTimerInterface ordering issue Dispatching a QThread from a non Qt thread is not allowed. Always use the HTTPRPCTimerInterface (non QT) to dispatch RPCRunLater threads. (Jonas Schnelli)

random-zebra added a commit to random-zebra/PIVX that referenced this pull request Oct 3, 2018

[RPC]: fix rpc timers (bitcoin#7317)

random-zebra added a commit to random-zebra/PIVX that referenced this pull request Oct 3, 2018

random-zebra added a commit to random-zebra/PIVX that referenced this pull request Oct 3, 2018

Mrs-X added a commit to PIVX-Project/PIVX that referenced this pull request Oct 14, 2018

Merge #729: [RPC] Fix RPCTimerInterface
0053876 [RPC]: Fix RPCTimerInterface ordering issue (bitcoin#7317) (random-zebra)

Tree-SHA512: 0e3b5ea32d48d824e37fff701c420e835c1da011cfe10302d47773341ca303ad680b85b2e6d505cda6d29be3e1c0964ee5880f66a67b1aed07aa510ba6fdc312

binarysculptor added a commit to project-liberty/wallet that referenced this pull request Oct 14, 2018

Merge #729: [RPC] Fix RPCTimerInterface
0053876 [RPC]: Fix RPCTimerInterface ordering issue (bitcoin/bitcoin#7317) (random-zebra)

Tree-SHA512: 0e3b5ea32d48d824e37fff701c420e835c1da011cfe10302d47773341ca303ad680b85b2e6d505cda6d29be3e1c0964ee5880f66a67b1aed07aa510ba6fdc312
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment