@@ -42,7 +42,12 @@ asio::awaitable<std::string> techempowerdb(std::shared_ptr<httppeer> peer)
4242 unsigned int rd_num = rand_range (1 , 10000 );
4343 myworld.where (" id" , rd_num);
4444 myworld.limit (1 );
45- co_await myworld.async_fetch_one ();
45+ std::size_t n = co_await myworld.async_fetch_one ();
46+ if (n == 0 )
47+ {
48+ n = co_await myworld.async_fetch_one ();
49+ }
50+
4651 peer->output = myworld.data_tojson ();
4752 co_return " " ;
4853}
@@ -69,7 +74,11 @@ asio::awaitable<std::string> techempowerqueries(std::shared_ptr<httppeer> peer)
6974 myworld.wheresql .clear ();
7075 unsigned int rd_num = rand_range (1 , 10000 );
7176 myworld.where (" id" , rd_num);
72- co_await myworld.async_fetch_append ();
77+ std::size_t n = co_await myworld.async_fetch_append ();
78+ if (n == 0 )
79+ {
80+ n = co_await myworld.async_fetch_append ();
81+ }
7382 }
7483
7584 peer->output = myworld.to_json ();
@@ -83,7 +92,12 @@ asio::awaitable<std::string> techempowerfortunes(std::shared_ptr<httppeer> peer)
8392 peer->set_header (" Date" , get_gmttime ());
8493
8594 auto myfortune = orm::Fortune ();
86- co_await myfortune.async_fetch ();
95+ std::size_t n = co_await myfortune.async_fetch ();
96+ if (n == 0 )
97+ {
98+ n = co_await myfortune.async_fetch ();
99+ }
100+
87101 myfortune.data .id = 0 ;
88102 myfortune.data .message = " Additional fortune added at request time." ;
89103 myfortune.record .push_back (myfortune.data );
@@ -130,13 +144,22 @@ asio::awaitable<std::string> techempowerupdates(std::shared_ptr<httppeer> peer)
130144 {
131145 myworld.wheresql .clear ();
132146 myworld.where (" id" , rand_range (1 , 10000 ));
133- co_await myworld.async_fetch_append ();
147+ std::size_t n = co_await myworld.async_fetch_append ();
148+ if (n == 0 )
149+ {
150+ n = co_await myworld.async_fetch_append ();
151+ }
134152 if (myworld.effect () > 0 )
135153 {
136154 unsigned int j = myworld.record .size () - 1 ;
137155 myworld.data .randomnumber = rand_range (1 , 10000 );
138156 myworld.record [j].randomnumber = myworld.data .randomnumber ;
139- co_await myworld.async_update (" randomnumber" );
157+
158+ n = co_await myworld.async_update (" randomnumber" );
159+ if (n == 0 )
160+ {
161+ n = co_await myworld.async_update (" randomnumber" );
162+ }
140163 }
141164 }
142165 peer->output = myworld.to_json ();
0 commit comments