]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Removed the obsolete birdloop flagger
authorMaria Matejka <mq@ucw.cz>
Tue, 5 Mar 2024 13:52:50 +0000 (14:52 +0100)
committerMaria Matejka <mq@ucw.cz>
Sat, 6 Apr 2024 16:28:43 +0000 (18:28 +0200)
This was useful when events were locking. As now sending events is lockless,
we can drop this obsolete routine for good.

lib/io-loop.h
nest/route.h
nest/rt-table.c
sysdep/unix/io-loop.c
sysdep/unix/io-loop.h

index 33a09aa910c51235528af49f2d1730751a06f0f3..ecae429d8c25018fc0c1d0173961543816735fa3 100644 (file)
@@ -53,14 +53,6 @@ void birdloop_unlink(struct birdloop *loop);
 
 void birdloop_ping(struct birdloop *loop);
 
-struct birdloop_flag_handler {
-  void (*hook)(struct birdloop_flag_handler *, u32 flags);
-  void *data;
-};
-
-void birdloop_flag(struct birdloop *loop, u32 flag);
-void birdloop_flag_set_handler(struct birdloop *, struct birdloop_flag_handler *);
-
 /* Setup sockets */
 void birdloop_add_socket(struct birdloop *, struct birdsock *);
 void birdloop_remove_socket(struct birdloop *, struct birdsock *);
index f398cb3307762087d214d877e6ddd4ff31c50c40..d92c4946da6165d62fbe4428b5546a45ca643ff8 100644 (file)
@@ -125,7 +125,6 @@ struct rtable_private {
   struct event *hcu_uncork_event;      /* Helper event to schedule HCU on uncork */
   struct timer *prune_timer;           /* Timer for periodic pruning / GC */
   struct event *prune_event;           /* Event for prune execution */
-  struct birdloop_flag_handler fh;     /* Handler for simple events */
   btime last_rt_change;                        /* Last time when route changed */
   btime gc_time;                       /* Time of last GC */
   uint gc_counter;                     /* Number of operations since last GC */
index 46b8ae6dd3e27d2066a9f3163a54d4d573c73c39..415aeee273b4887023fa78b3639c720d57fe5bbd 100644 (file)
@@ -2693,8 +2693,6 @@ rt_setup(pool *pp, struct rtable_config *cf)
 
   UNLOCK_DOMAIN(rtable, dom);
 
-  /* Setup the service thread flag handler */
-  birdloop_flag_set_handler(t->loop, &t->fh);
   birdloop_leave(t->loop);
 
   return RT_PUB(t);
index 4f3f20659b4f0980ac601a627d6ce065ef57175d..e7314766c892604635bdf4846fe355218248f483 100644 (file)
@@ -188,34 +188,6 @@ birdloop_in_this_thread(struct birdloop *loop)
   return pthread_equal(pthread_self(), loop->thread->thread_id);
 }
 
-void
-birdloop_flag(struct birdloop *loop, u32 flag)
-{
-  atomic_fetch_or_explicit(&loop->flags, flag, memory_order_acq_rel);
-  birdloop_ping(loop);
-}
-
-void
-birdloop_flag_set_handler(struct birdloop *loop, struct birdloop_flag_handler *fh)
-{
-  ASSERT_DIE(birdloop_inside(loop));
-  loop->flag_handler = fh;
-}
-
-static int
-birdloop_process_flags(struct birdloop *loop)
-{
-  if (!loop->flag_handler)
-    return 0;
-
-  u32 flags = atomic_exchange_explicit(&loop->flags, 0, memory_order_acq_rel);
-  if (!flags)
-    return 0;
-
-  loop->flag_handler->hook(loop->flag_handler, flags);
-  return 1;
-}
-
 /*
  *     Wakeup code for birdloop
  */
@@ -1483,9 +1455,6 @@ birdloop_run(void *_loop)
     /* Run timers */
     timers_fire(&loop->time, 0);
 
-    /* Run flag handlers */
-    repeat += birdloop_process_flags(loop);
-
     /* Run events */
     repeat += ev_run_list(&loop->event_list);
 
index 53d9f96b9378825cb4d2de08804468b461bd0dfe..71e5b109c7c66d93edf0273e84cad358cfa0b2c3 100644 (file)
@@ -58,8 +58,6 @@ struct birdloop
   _Atomic u32 thread_transition;
 #define LTT_PING  1
 #define LTT_MOVE  2
-  _Atomic u32 flags;
-  struct birdloop_flag_handler *flag_handler;
 
   void (*stopped)(void *data);
   void *stop_data;