Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

효뚜르팝의 Dev log

[React 까보기 시리즈] Fiber 구조로 가능해진 Concurrent mode 와 Sync WORK 를 처리하는 방법? 본문

TIL

[React 까보기 시리즈] Fiber 구조로 가능해진 Concurrent mode 와 Sync WORK 를 처리하는 방법?

hyodduru 2024. 9. 23. 22:56
https://www.youtube.com/watch?v=A6KGVmvEV-s

 

concorrent = 우선순위 조정이 가능하다

Fiber 구조로 가능해진 Concurrent mode 와 Sync WORK 를 처리하는 방법?

scheduleCallback, scheduleSyncCallback

- 비동기(Concurrent WORK) 

    - 수행해달라는 performConcurrentWorkOnRoot()에 root를 bind해서 schedulerCallback에 전달 -> Scheduler_scheduleCallback에 전달 

 

- 동기(Sync WORK) 

   - 수행해달라는 performSyncWorkOnRoot()에 root를 bind해서 scheduleSyncCallback에 전달 -> callback 담아두는 queue에 저장 -> queue를 비우는 flushSyncCallbackQueueImpl 을 스케줄링 

    (다음 프레임에서 scheduler에 의해 flushSyncCallbackQueueImpl 실행) 

   - 만약 리액트가 NoContext여서 flushSyncCallback 호출했다면 

        - flushSyncCallbackQueueImpl이 스케줄링 되어있는지 확인 후 

              - 스케줄링이 되었으면 취소하고 flushSyncCallbackQueueImpl 실행 (queue를 비우는 함수) 

              - 스케줄링이 안되어있으면 flsySyncCallbackQueueImpl 실행 

 

 

 

ScheduleCallback 

reconcilier와 scheduler의 priority 값이 다르므로 변환 필요 

Scheduler_scheduleCallback 함수로 스케줄러에게 콜백 전달