AdapterIO: Create seek sem only when requested
This commit is contained in:
@@ -216,9 +216,6 @@ BAdapterIO::BAdapterIO(int32 flags, bigtime_t timeout)
|
|||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
fBuffer = new RelativePositionIO(this, new BMallocIO(), timeout);
|
fBuffer = new RelativePositionIO(this, new BMallocIO(), timeout);
|
||||||
|
|
||||||
if (fBuffer->IsSeekable())
|
|
||||||
fSeekSem = create_sem(0, "BAdapterIO seek sem");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -281,6 +278,9 @@ BAdapterIO::Seek(off_t position, uint32 seekMode)
|
|||||||
|
|
||||||
if (ret == B_RESOURCE_UNAVAILABLE && fBuffer->IsStreaming()
|
if (ret == B_RESOURCE_UNAVAILABLE && fBuffer->IsStreaming()
|
||||||
&& fBuffer->IsSeekable()) {
|
&& fBuffer->IsSeekable()) {
|
||||||
|
|
||||||
|
fSeekSem = create_sem(0, "BAdapterIO seek sem");
|
||||||
|
|
||||||
if (SeekRequested(position) != B_OK)
|
if (SeekRequested(position) != B_OK)
|
||||||
return B_NOT_SUPPORTED;
|
return B_NOT_SUPPORTED;
|
||||||
|
|
||||||
@@ -363,6 +363,8 @@ BAdapterIO::SeekCompleted()
|
|||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
release_sem(fSeekSem);
|
release_sem(fSeekSem);
|
||||||
|
delete_sem(fSeekSem);
|
||||||
|
fSeekSem = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user