-alloc_check:
-
- if (!alloc_fail)
- {
-
- alloc_success:
-
- ASSERT (rx_fifo && tx_fifo);
- sm_index = segment_manager_index (sm);
- fs_index = segment_manager_segment_index (sm, fs);
- (*tx_fifo)->segment_manager = sm_index;
- (*rx_fifo)->segment_manager = sm_index;
- (*tx_fifo)->segment_index = fs_index;
- (*rx_fifo)->segment_index = fs_index;
-
- if (added_a_segment)
- {
- app_worker_t *app_wrk;
- fs_handle = segment_manager_segment_handle (sm, fs);
- app_wrk = app_worker_get (sm->app_wrk_index);
- rv = app_worker_add_segment_notify (app_wrk, fs_handle);
- }
- /* Drop the lock after app is notified */
- segment_manager_segment_reader_unlock (sm);
- return rv;
- }
-