Fixed TRID sizes to always be 8kb.

This commit is contained in:
Thulinma 2016-05-23 10:38:25 +02:00
parent 1193c6354b
commit 4b2a8d4b33
3 changed files with 8 additions and 7 deletions

View file

@ -89,6 +89,7 @@ static const char * DBG_LVL_LIST[] = {"NONE", "FAIL", "ERROR", "WARN", "INFO", "
#define SHM_STREAM_INDEX "MstSTRM%s" //%s stream name #define SHM_STREAM_INDEX "MstSTRM%s" //%s stream name
#define SHM_TRACK_META "MstTRAK%s@%lu" //%s stream name, %lu track ID #define SHM_TRACK_META "MstTRAK%s@%lu" //%s stream name, %lu track ID
#define SHM_TRACK_INDEX "MstTRID%s@%lu" //%s stream name, %lu track ID #define SHM_TRACK_INDEX "MstTRID%s@%lu" //%s stream name, %lu track ID
#define SHM_TRACK_INDEX_SIZE 8192
#define SHM_TRACK_DATA "MstDATA%s@%lu_%lu" //%s stream name, %lu track ID, %lu page # #define SHM_TRACK_DATA "MstDATA%s@%lu_%lu" //%s stream name, %lu track ID, %lu page #
#define SHM_STATISTICS "MstSTAT" #define SHM_STATISTICS "MstSTAT"
#define SHM_USERS "MstUSER%s" //%s stream name #define SHM_USERS "MstUSER%s" //%s stream name

View file

@ -211,7 +211,7 @@ namespace Mist {
//Delete most if not all track indexes and data pages. //Delete most if not all track indexes and data pages.
for (long unsigned i = 1; i <= 24; ++i){ for (long unsigned i = 1; i <= 24; ++i){
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), i); snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), i);
IPC::sharedPage indexPage(pageName, 8192, false, false); IPC::sharedPage indexPage(pageName, SHM_TRACK_INDEX_SIZE, false, false);
indexPage.master = true; indexPage.master = true;
if (indexPage.mapped){ if (indexPage.mapped){
char * mappedPointer = indexPage.mapped; char * mappedPointer = indexPage.mapped;
@ -600,7 +600,7 @@ namespace Mist {
char firstPage[NAME_BUFFER_SIZE]; char firstPage[NAME_BUFFER_SIZE];
snprintf(firstPage, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, config->getString("streamname").c_str(), finalMap); snprintf(firstPage, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, config->getString("streamname").c_str(), finalMap);
nProxy.metaPages[finalMap].init(firstPage, 8192, false); nProxy.metaPages[finalMap].init(firstPage, SHM_TRACK_INDEX_SIZE, false);
//Update the metadata for this track //Update the metadata for this track
updateTrackMeta(finalMap); updateTrackMeta(finalMap);
@ -753,7 +753,7 @@ namespace Mist {
if (!nProxy.metaPages.count(value) || !nProxy.metaPages[value].mapped) { if (!nProxy.metaPages.count(value) || !nProxy.metaPages[value].mapped) {
char firstPage[NAME_BUFFER_SIZE]; char firstPage[NAME_BUFFER_SIZE];
snprintf(firstPage, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, config->getString("streamname").c_str(), value); snprintf(firstPage, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, config->getString("streamname").c_str(), value);
nProxy.metaPages[value].init(firstPage, 8192, false, false); nProxy.metaPages[value].init(firstPage, SHM_TRACK_INDEX_SIZE, false, false);
} }
if (nProxy.metaPages[value].mapped) { if (nProxy.metaPages[value].mapped) {
//Update the metadata for this track //Update the metadata for this track

View file

@ -102,7 +102,7 @@ namespace Mist {
{ {
char pageName[NAME_BUFFER_SIZE]; char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), mapTid); snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), mapTid);
IPC::sharedPage checkPage(pageName, 8 * 1024 * 1024, false, false); IPC::sharedPage checkPage(pageName, SHM_TRACK_INDEX_SIZE, false, false);
if (!checkPage.mapped){ if (!checkPage.mapped){
WARN_MSG("The buffer deleted our index. Re-negotiating..."); WARN_MSG("The buffer deleted our index. Re-negotiating...");
trackState.erase(tid); trackState.erase(tid);
@ -562,7 +562,7 @@ namespace Mist {
trackState[tid] = FILL_ACC; trackState[tid] = FILL_ACC;
char pageName[NAME_BUFFER_SIZE]; char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), tid); snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), tid);
metaPages[tid].init(pageName, 8 * 1024 * 1024, true); metaPages[tid].init(pageName, SHM_TRACK_INDEX_SIZE, true);
metaPages[tid].master = false; metaPages[tid].master = false;
return; return;
} }
@ -634,7 +634,7 @@ namespace Mist {
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid); snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid);
metaPages[tid].init(pageName, 8 * 1024 * 1024, true); metaPages[tid].init(pageName, SHM_TRACK_INDEX_SIZE, true);
metaPages[tid].master = false; metaPages[tid].master = false;
Bit::htobl(tmp + offset, finalTid | 0xC0000000); Bit::htobl(tmp + offset, finalTid | 0xC0000000);
Bit::htobs(tmp + offset + 4, firstPage); Bit::htobs(tmp + offset + 4, firstPage);
@ -719,7 +719,7 @@ namespace Mist {
trackState[tid] = FILL_ACC; trackState[tid] = FILL_ACC;
char pageName[NAME_BUFFER_SIZE]; char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid); snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid);
metaPages[tid].init(pageName, 8 * 1024 * 1024, true); metaPages[tid].init(pageName, SHM_TRACK_INDEX_SIZE, true);
metaPages[tid].master = false; metaPages[tid].master = false;
break; break;
} }