Yarn: ResourceReloadListener#reload -> createReloadTask ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ

์— ๋งŒ๋“  2019๋…„ 10์›” 22์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: FabricMC/yarn

ResourceReloadListener#reload ์€(๋Š”) ์ž์ฒด์ ์œผ๋กœ ๋‹ค์‹œ ๋กœ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹ , ๊ทธ ๋ชฉํ‘œ๋Š” CompletableFuture ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ‰๊ฐ€๋  ๋•Œ ๋‹ค์–‘ํ•œ Executor ์— ์‹ค์ œ ๋‹ค์‹œ ๋กœ๋“œ ์ž‘์—…์„ ์ œ์ถœํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

reload ์— ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ณ  ์•„๋ฌด ์ž‘์—…๋„ ํ•˜์ง€ ์•Š๋Š” ๋”๋ฏธ CompletableFuture ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์†์ด๋ ค๊ณ  ํ•˜๋ฉด Synchronizer#whenPrepared ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ๋ฏธ๋ž˜๋Š” ์ ˆ๋Œ€ ์–ป์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ๋กœ๋“œํ•  ๋•Œ ๊ฒŒ์ž„์ด ๋ฉˆ์ถฅ๋‹ˆ๋‹ค. ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”.

createReloadTask ์™€ ๊ฐ™์€ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ์ด ๊ฒฝ๋กœ๋ฅผ ๋ฐฉํ•ดํ•˜๊ณ  ์ด ๋ฐฉ๋ฒ•์—์„œ ์ง์ ‘ ๋‹ค์‹œ ๋กœ๋“œํ•˜์ง€ ์•Š์•„์•ผ ํ•จ์„ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

discussion enhancement refactor

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

imo, ResourceReloadListener ๋Š” ์‹ค์ œ๋กœ ๋‹ค์‹œ ๋กœ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•ญ๋ชฉ์ด๋ฏ€๋กœ ResourceReloader ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค( ResourceReloadHandler ์™€ ๋น„๊ต). reload ์ด๋ฆ„์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋ชจ๋“  CompletableFuture ๊ด€๋ จ ์ด๋ฆ„์— ๋Œ€ํ•ด ์ผ๊ด€๋œ ๋ช…๋ช… ์ฒด๊ณ„๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

imo, ResourceReloadListener ๋Š” ์‹ค์ œ๋กœ ๋‹ค์‹œ ๋กœ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•ญ๋ชฉ์ด๋ฏ€๋กœ ResourceReloader ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค( ResourceReloadHandler ์™€ ๋น„๊ต). reload ์ด๋ฆ„์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋ชจ๋“  CompletableFuture ๊ด€๋ จ ์ด๋ฆ„์— ๋Œ€ํ•ด ์ผ๊ด€๋œ ๋ช…๋ช… ์ฒด๊ณ„๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ดํŽด๋ณด๊ณ  ๋‚˜๋ฉด ์ด๋ฏธ ์žฌ๋กœ๋“œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฆฌ์†Œ์Šค ์žฌ๋กœ๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ด ์ด๋ฆ„์„ ๋ฌด์—‡์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋˜๋Š” ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

ํ , ์•„๋งˆ๋„ ResourceReloader -> SimpleResourceReload , ResourceReloadListener -> ResourceReloader . ๋˜ํ•œ ResourceReloadMonitor ์˜ ์ด๋ฆ„์„ ResourceReload ๋กœ ์ง€์ •ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๊ตฌํ˜„ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ResourceReload ๋Š” ํ•œ ๋ฒˆ์˜ ์žฌ์žฅ์ „์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์งํ›„์— ๋ฒ„๋ ค์ง€๋ฏ€๋กœ ์ด ์ด๋ฆ„์€ ์‹ค์ œ๋กœ ์ข‹๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰