diff options
Diffstat (limited to 'src/main.odin')
| -rw-r--r-- | src/main.odin | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/src/main.odin b/src/main.odin index b68f90d..6ef4778 100644 --- a/src/main.odin +++ b/src/main.odin @@ -31,9 +31,6 @@ os_write :: proc(handle: rawptr, data: []byte) -> (int, int) { //Note(Daniel, Should look into handling errors without crashing from parsing) -verbose_logger: log.Logger -file_logger: log.Logger -file_logger_init: bool request_thread: ^thread.Thread run :: proc(reader: ^server.Reader, writer: ^server.Writer) { @@ -48,27 +45,20 @@ run :: proc(reader: ^server.Reader, writer: ^server.Writer) { writer = writer, } + /* + tracking_allocator: mem.Tracking_Allocator + mem.tracking_allocator_init(&tracking_allocator, context.allocator) + context.allocator = mem.tracking_allocator(&tracking_allocator) + */ + server.requests = make([dynamic]server.Request, context.allocator) server.deletings = make([dynamic]server.Request, context.allocator) request_thread = thread.create_and_start_with_data(cast(rawptr)&request_thread_data, server.thread_request_main) server.setup_index(); - - for common.config.running { - if common.config.file_log { - if !file_logger_init { - if fh, err := os.open("log.txt"); err == 0 { - file_logger = log.create_file_logger(fh, log.Level.Info) - } - } - context.logger = file_logger - } else if common.config.verbose { - context.logger = verbose_logger - } else { - context.logger = log.Logger {nil, nil, log.Level.Debug, nil} - } + for common.config.running { server.consume_requests(&common.config, writer) } @@ -83,6 +73,12 @@ run :: proc(reader: ^server.Reader, writer: ^server.Writer) { server.document_storage_shutdown() server.free_index() + + /* + for key, value in tracking_allocator.allocation_map { + log.errorf("%v: Leaked %v bytes\n", value.location, value.size) + } + */ } end :: proc() { @@ -93,11 +89,17 @@ main :: proc() { reader := server.make_reader(os_read, cast(rawptr)&os.stdin) writer := server.make_writer(os_write, cast(rawptr)&os.stdout) - verbose_logger := server.create_lsp_logger(&writer, log.Level.Error) - - context.logger = verbose_logger - - init_global_temporary_allocator(mem.Megabyte*100) + context.logger = server.create_lsp_logger(&writer, log.Level.Error) + /* + fh, err := os.open("log.txt", os.O_RDWR|os.O_CREATE) + + if err != os.ERROR_NONE { + return + } + + context.logger = log.create_file_logger(fh, log.Level.Info) + */ + init_global_temporary_allocator(mem.Megabyte*10) run(&reader, &writer) } |