Move chunk server RequestQueue initialization to connection time
The RequestQueue for chunk servers should be initialized when the connection is actually established in get_chunk_server_connection(), not ahead of time during tinydfs_init(). The metadata server RequestQueue initialization remains in tinydfs_init() since the metadata server connection is established during initialization. Changes: - Removed premature RequestQueue initialization for chunk servers - Added clarifying comments about initialization timing - RequestQueue is initialized in get_chunk_server_connection() (line 227)
This commit is contained in:
+3
-3
@@ -121,16 +121,16 @@ TinyDFS *tinydfs_init(char *addr, uint16_t port)
|
|||||||
for (int i = 0; i < MAX_OPERATIONS; i++)
|
for (int i = 0; i < MAX_OPERATIONS; i++)
|
||||||
tdfs->operations[i].type = OPERATION_TYPE_FREE;
|
tdfs->operations[i].type = OPERATION_TYPE_FREE;
|
||||||
|
|
||||||
// Initialize metadata server
|
// Initialize metadata server (connected during init)
|
||||||
tdfs->metadata_server.used = true;
|
tdfs->metadata_server.used = true;
|
||||||
tdfs->metadata_server.addr = addr2;
|
tdfs->metadata_server.addr = addr2;
|
||||||
request_queue_init(&tdfs->metadata_server.reqs);
|
request_queue_init(&tdfs->metadata_server.reqs);
|
||||||
|
|
||||||
// Initialize chunk servers
|
// Initialize chunk servers array (connections created on demand)
|
||||||
tdfs->num_chunk_servers = 0;
|
tdfs->num_chunk_servers = 0;
|
||||||
for (int i = 0; i < MAX_CHUNK_SERVERS; i++) {
|
for (int i = 0; i < MAX_CHUNK_SERVERS; i++) {
|
||||||
tdfs->chunk_servers[i].used = false;
|
tdfs->chunk_servers[i].used = false;
|
||||||
request_queue_init(&tdfs->chunk_servers[i].reqs);
|
// Note: RequestQueue initialized in get_chunk_server_connection()
|
||||||
}
|
}
|
||||||
|
|
||||||
return tdfs;
|
return tdfs;
|
||||||
|
|||||||
Reference in New Issue
Block a user