watchdog_kick: non-allocating (#22892)
	
		
	
				
					
				
			* non-allocating * unpack * call kick every second * cleanup includepull/214/head
							parent
							
								
									0dcb089254
								
							
						
					
					
						commit
						ca88a8769b
					
				
				 3 changed files with 8 additions and 12 deletions
			
			
		| @ -1,19 +1,12 @@ | ||||
| #include "selfdrive/common/watchdog.h" | ||||
| 
 | ||||
| #include <unistd.h> | ||||
| 
 | ||||
| #include <cstdint> | ||||
| #include <string> | ||||
| 
 | ||||
| #include "selfdrive/common/timing.h" | ||||
| #include "selfdrive/common/util.h" | ||||
| 
 | ||||
| const std::string watchdog_fn_prefix = "/dev/shm/wd_";  // + <pid>
 | ||||
| 
 | ||||
| bool watchdog_kick() { | ||||
|   std::string fn = watchdog_fn_prefix + std::to_string(getpid()); | ||||
|   std::string cur_t = std::to_string(nanos_since_boot()); | ||||
|   static std::string fn = watchdog_fn_prefix + std::to_string(getpid()); | ||||
| 
 | ||||
|   int r = util::write_file(fn.c_str(), cur_t.data(), cur_t.length(), O_WRONLY | O_CREAT); | ||||
|   return r == 0; | ||||
|   uint64_t ts = nanos_since_boot(); | ||||
|   return util::write_file(fn.c_str(), &ts, sizeof(ts), O_WRONLY | O_CREAT) > 0; | ||||
| } | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue