diff --git a/src/SharedMemoryAccess.cpp b/src/SharedMemoryAccess.cpp index 7bd1013..6bd11b2 100644 --- a/src/SharedMemoryAccess.cpp +++ b/src/SharedMemoryAccess.cpp @@ -75,6 +75,9 @@ namespace vkvm { } auto getSharedMemory() -> char * { + if(impl.sharedMemory != nullptr){ + return impl.sharedMemory; + } int shmId = shmget(impl.sharedMemoryKey, 0, 0); if (shmId < 0) { //using a local buffer for shared memory testing @@ -82,8 +85,10 @@ namespace vkvm { } char *ptr = static_cast(shmat(shmId, nullptr, 0)); if((size_t)ptr == (size_t)-1){ + log(LogLevel::WARNING, strerror(errno)); return getLocalMemory(); }else{ + impl.sharedMemory = ptr; return ptr; } } diff --git a/src/internal.hpp b/src/internal.hpp index 7f57add..c0dcaac 100644 --- a/src/internal.hpp +++ b/src/internal.hpp @@ -59,6 +59,7 @@ constexpr int keyboardBufferSize = 16; int reservedSize = 1024; //NOLINT std::vector> eventTable; bool localMemoryWarn = true; + char *sharedMemory = nullptr; }; extern Impl impl; diff --git a/src/vkvm.cpp b/src/vkvm.cpp index f938548..41c8a36 100644 --- a/src/vkvm.cpp +++ b/src/vkvm.cpp @@ -22,8 +22,8 @@ namespace vkvm { setMode(GraphicMode::RGB); setCharactersPerRow(60);// NOLINT setCharactersPerColumn(20);// NOLINT - setHeight(600);// NOLINT - setWidth(800);// NOLINT + setHeight(60);// NOLINT + setWidth(80);// NOLINT setMousePosition(42, 42);// NOLINT setBackgroundColor(black); setForegroundColor(white);