API footgun: shared_ptr to timer, ambiguous reset
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia esaminando l’uso di rclcpp::TimerBase::SharedPtr con create_wall_timer e le chiamate concorrenti a timer->reset() e timer.reset() mostrate nella riproduzione. Determina se sia appropriata un’API esplicita per riavviare il timer, quindi definisci il comportamento previsto e aggiungi la copertura per il riavvio rispetto alla distruzione del timer.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Generated by Generative AI
No response
Operating System:
Linux JCAPC214 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
ROS version or commit hash:
humble, rolling
RMW implementation (if applicable):
No response
RMW Configuration (if applicable):
No response
Client library (if applicable):
rclcpp
'ros2 doctor --report' output
No response
Steps to reproduce issue
rclcpp::TimerBase::SharedPtr timer =
node->create_wall_timer(1s, {
RCLCPP_INFO(rclcpp::get_logger("test"), "tick");
});
// Intended: restart the timer
timer->reset();
// Accidental change during refactor:
timer.reset(); // Timer is destroyed instead
Expected behavior
Likely requires a refactor to the api to make the reset_timer explicit and not collide with the pointer
Actual behavior
Your pointer is reset and needs to be reconstructed
Additional information
No response
- Lingua principale
- C++
- Stelle
- 805
- Fork
- 564
- Merge medio
- 1g 22h
- PR unite (30g)
- 21
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ros2/rclcpp
-
good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
ros2/message_filters#338 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
subsurface/subsurface#4984 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google-ai-edge/LiteRT-LM#3739 ·