| 108 | #define MIN_KERNEL_RETRY_PAUSE 2 // 2 seconds |
| 109 | |
| 110 | static bool wait_for_new_socket(void) |
| 111 | { |
| 112 | int failures = 0; |
| 113 | while(true) |
| 114 | { |
| 115 | unsigned int kernel_free_current = 0; |
| 116 | sys_net_if_ctl(0, SYS_NET_CC_GET_MEMORY_FREE_CURRENT, &kernel_free_current, sizeof(kernel_free_current)); |
| 117 | |
| 118 | if(kernel_free_current >= MIN_KERNEL_FREE_SPACE) |
| 119 | { |
| 120 | break; // There's enough space for new socket |
| 121 | } |
| 122 | else |
| 123 | { |
| 124 | failures++; |
| 125 | |
| 126 | if(failures >= MIN_KERNEL_MAX_TRIES) |
| 127 | { |
| 128 | return true; // Kernel is full: Not enough space found |
| 129 | } |
| 130 | |
| 131 | sys_ppu_thread_sleep(MIN_KERNEL_RETRY_PAUSE); // Give kernel more time to free up space |
| 132 | } |
| 133 | } |
| 134 | return false; |
| 135 | } |
no test coverage detected