sys/net/gnrc/netif: hold packets after tx_sync split #21855
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contribution description
The
gnrc_tx_sync()function currently blocks infinitely after a packet with tx_sync is sent viagnrc_netapi_send()through a legacy netdev when thegnrc_netif_pktqmodule is being used. This happens, because the tc_sync snippet users get increased and the sync snippet can not be released properly.Testing procedure
The test provided only uses nrfmin as legacy netdev. Therefore the test should only work on nrf5x devices. By adjusting the Makefile any other legacy netdev can be used.
The test starts a separate
result_threadand usesztimer_secto schedule a timeout error message after one second. As soon asgnrc_tx_sync()releases, the timeout error message gets canceled and a success message is being sent to theresult_thread.Issues/PRs references
PR #15694; PR #21709