ChunkBuffer 관련 질문입니다
178
snu
작성한 질문수 36
0
1. 4096바이트로 chunk 버퍼를 잡아놓은 후 다 사용하면 삭제하고 다시 만드는 이유가 뭔가요?
그냥 writePos를 0으로 옮기는 등 초기화하여 사용하면 되지 않나요?
2. ThreadLocal로 지정해 놓은 변수들은 getqueuedcompletionstatus로 임의의 스레드가 깨어났을 경우에도 깨어나기 전까지 저장해놓은 상태가 계속 유지되나요?
예를 들어 스레드 1에서 sendbufferchunk에서 100바이트 사용했다면 Dispatch하여 getqueuedcompletionstatus에서 깨어났을 때
여전히 sendbufferchunk가 100바이트를 사용한 상태를 유지하나요? 스레드 내에서는 일종의 전역변수처럼 사용되는거 같습니다.
답변 1
1
1. 4096바이트로 chunk 버퍼를 잡아놓은 후 다 사용하면 삭제하고 다시 만드는 이유가 뭔가요?
그냥 writePos를 0으로 옮기는 등 초기화하여 사용하면 되지 않나요?
'다 사용하는' 시점을 알기가 어렵습니다.
패킷을 만들고 해당 버퍼를 여러 Session들에게 꽂아줄텐데,
session마다 (클라 상태에 따라) 데이터를 전송하는 시점이 다르기 때문에
writePos를 0으로 초기화해서 사용하는게 안됩니다.
'다 사용하는' 시점을 알기가 어렵습니다.
패킷을 만들고 해당 버퍼를 여러 Session들에게 꽂아줄텐데,
session마다 (클라 상태에 따라) 데이터를 전송하는 시점이 다르기 때문에
writePos를 0으로 초기화해서 사용하는게 안됩니다.
2. ThreadLocal로 지정해 놓은 변수들은 getqueuedcompletionstatus로 임의의 스레드가 깨어났을 경우에도 깨어나기 전까지 저장해놓은 상태가 계속 유지되나요?
네 맞습니다
스레드 내에서는 일종의 전역변수처럼 사용되는거 같습니다.
이것도 맞습니다
writeLock을 잡을때 꼭 empty 상태여야하는 이유?
0
70
2
Memory Pool에서 오버플로우 질문입니다.
0
100
2
포토폴리오 및 진로 관련하여 고민입니다.
0
183
1
포토폴리오 관련 고민입니다.
0
99
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
112
2
성능 테스트 결과
0
120
2
게임 서버 Stateful, Stateless 진로 고민
0
154
1
WaitOnAddress와 Sleep의 차이 질문
0
107
1
궁금한거 있습니다.
0
93
2
JobTimer 구동 스레드
0
120
2
TryPop() 동작 관련 질문
0
87
1
로드맵 C#서버 C++서버 방향성 질문
0
169
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
83
1
생명주기를 위한 의도적 복사
0
99
2
락프리의 실무에서 사용 질문
0
158
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
110
2
mutex와 sleep 차이점
0
133
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
170
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
102
1
공부법 관련해서
0
192
2
MakeShared 함수 관련
0
119
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
154
2
운영체제관련 질문입니다
0
148
1
send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.
0
127
2





